وقتی اتوماسیون راهاندازی سرور را انجام میدهید، گاهی لازم است اجرای یک کار مشابه با مقادیر مختلف را چندین بار تکرار کنید. برای مثال، ممکن است بخواهید مجوزهای چندین فایل را تغییر دهید یا چند کاربر ایجاد کنید. برای جلوگیری از تکرار همان کار چندین بار در فایل playbook خود، بهتر است از حلقهها استفاده کنید.
در برنامهنویسی، یک حلقه به شما امکان میدهد دستورات را تکرار کنید، معمولاً تا زمانی که یک شرط خاص برقرار شود. پارمین کلود روشهای مختلفی برای استفاده از حلقه در ansible ارائه میدهد که کلیدواژه loop به عنوان بهترین گزینه برای سازگاری بلندمدت توصیه میشود.
مثال زیر سه فایل مختلف در مسیر /tmp ایجاد میکند. این کار با ماژول file در یک تسک انجام میشود که از حلقه با سه مقدار مختلف بهره میبرد.
یک فایل جدید با نام playbook-06.yml در دایرکتوری ansible-practice خود ایجاد کنید:
nano ~/ansible-practice/playbook-06.yml
سپس خطوط زیر را در فایل جدید اضافه کنید:
---
- hosts: all
tasks:
- name: creates users files
file:
path: /tmp/ansible-{{ item }}
state: touch
loop:
- sammy
- erika
- brian
فایل را ذخیره و ببندید.
سپس، با استفاده از همان آرگومانهای اتصال که در مثالهای قبلی داشتید، فرمان ansible-playbook را اجرا کنید. دقت کنید که ما از فایل موجودی به نام inventory و کاربری به نام sammy استفاده میکنیم، اما باید این مقادیر را متناسب با تنظیمات خود تغییر دهید:
ansible-playbook -i inventory playbook-06.yml -u sammy
خروجیای مشابه زیر دریافت خواهید کرد که هر مقدار مورد استفاده در حلقه را نمایش میدهد:
Output
...
TASK [creates users files] ******************************************************************************
changed: [203.0.113.10] => (item=sammy)
changed: [203.0.113.10] => (item=erika)
changed: [203.0.113.10] => (item=brian)
...
برای اطلاعات بیشتر و دقیقتر درباره نحوه استفاده از حلقهها در نوشتن playbookهای ansible، میتوانید به مستندات رسمی مراجعه کنید.
از اینکه با پارمین کلود همراهید متشکریم.
ansible ابزاری مدرن برای مدیریت کانفیگ است که نیاز به نصب نرمافزار عامل روی نودهای راه دور ندارد و تنها با استفاده از SSH و پایتون قادر به برقراری ارتباط و اجرای دستورات روی سرورهاست. این مجموعه آموزشی شما را با ویژگیهای اصلی ansible آشنا میکند تا بتوانید playbookهایی برای اتوماسیون سرورها بنویسید. در انتها، مثالی عملی از ایجاد یک playbook را میبینیم که راهاندازی یک وب سرور Nginx راه دور و استقرار یک وبسایت HTML استاتیک را اتوماتیک میکند.
نظرات کاربران