یک task کوچکترین واحد عملی است که میتوانید به کمک یک playbook در Ansible خودکارسازی کنید. Playbookها معمولاً مجموعهای از taskها را شامل میشوند که هدف خاصی دارند، مانند راهاندازی یک سرور وب یا استقرار یک اپلیکیشن در محیطهای راه دور.
Ansible کارها را دقیقاً به همان ترتیبی که در playbook تعریف شدهاند اجرا میکند. پیش از خودکارسازی یک فرایند مثل راهاندازی یک سرور LEMP، باید بررسی کنید که کدام گامهای دستی لازم است و ترتیب درست انجامشان چگونه باید باشد تا همه چیز به درستی انجام شود. سپس میتوانید مشخص کنید به چه taskهایی نیاز دارید و با استفاده از کدام moduleها میتوانید به کمترین تعداد مراحل، به هدف برسید.
Moduleها میانبرهایی برای اجرای عملیاتهایی هستند که به طور معمول باید به عنوان دستورات bash خام اجرا شوند. همچنین اینها اغلب برای انتزاع دستورات در سیستمعاملهای مختلف به کار میروند.
هنگامی که اولین playbook خود را در بخش قبلی این راهنما ساختید، یک task منفرد تعریف کرده بودید که با استفاده از debug یک پیام را چاپ میکرد. بیایید یک بار دیگر به آن playbook نگاه کنیم. برای مشاهده محتوای فایل میتوانید از دستور cat استفاده کنید:
cat ~/ansible-practice/playbook-01.yml
این playbook یک task منفرد دارد که یک پیام را در خروجی play چاپ میکند:
---
- hosts: all
tasks:
- name: Print message
debug:
msg: Hello Ansible World
Taskها به صورت یک لیست تحت عنوان tasks درون یک play تعریف میشوند، همتراز با دستور hosts که اهداف آن play را مشخص میکند. ویژگی name خروجیای را مشخص میکند که هنگام اجرای آن task نمایش داده میشود.
نمونه task از module debug استفاده میکند، که به شما اجازه میدهد پیامها را در یک play نمایش دهید. این پیامها میتوانند برای نمایش اطلاعات اشکالزدایی مانند محتوای متغیر یا پیام خروجی برگرداندهشده توسط یک فرمان، به کار روند.
هر module گزینهها و ویژگیهای مخصوص به خود را دارد. ماژول debug یک ویژگی به نام msg انتظار دارد که حاوی پیامی است که باید چاپ شود. به فاصلهگذاری (indentation) دو فاصله دقت کنید، زیرا msg باید یک ویژگی داخلی debug باشد.
از اینکه با پارمین کلود همراهید، سپاسگزاریم.
نظرات کاربران