- با استفاده از کلید notify و handlers میتوان اجرای یک یا چند شرط را منوط به اجرای موفقیت آمیز شرطی دیگر کرد.
- به عنوان مثال کد زیر باعث میشود تا :
- ابتدا سرویس httpd بر روی خادمهای تحت مدیریت گروه centos-servers نصب و راه اندازی شود.
- سپس در صورتی که فرآیند نصب و راه اندازی با موفقیت صورت گرفته باشد، سرویس مروبطه روشن شود.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
--- - name: PlayBook hosts: centos-servers gather_facts: no tasks: - name: install apache web server yum: name=httpd state=latest <span style="color: #ff0000;">notify</span>: - <span style="color: #ff0000;">start apache service</span> <span style="color: #ff0000;">handlers</span>: - name: <span style="color: #ff0000;">start apache service</span> service: name=httpd state=started ... |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- ابتدا سرویس Nginx بر روی تمام خادمهای تحت مدیریت نصب و راه اندازی شود.
- سپس در صورتی که فرآیند نصب و راه اندازی با موفقیت صورت گرفته باشد، سرویس مروبطه روشن شود.
|
1 2 3 4 5 6 7 8 9 10 11 |
--- - hosts: all tasks: - name: Install Nginx apt: pkg=nginx state=installed update_cache=true notify: - <span style="color: #ff0000;">Start Nginx</span> handlers: - name: <span style="color: #ff0000;">Start Nginx</span> service: name=nginx state=started |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- دو سرویس apache و polipo راه اندازی مجدد شوند.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
--- - name: PlayBook hosts: all gather_facts: yes <span style="color: #ff0000;">handlers</span>: - name: restart polipo service: name: polipo state: restarted listen: "<span style="color: #ff0000;">restart services</span>" - name: restart apache service: name: apache2 state: restarted listen: "<span style="color: #ff0000;">restart services</span>" tasks: - name: restart everything command: echo "this task will restart the web and proxy services" <span style="color: #ff0000;">notify</span>: "<span style="color: #ff0000;">restart services</span>" |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به منظور مطالعهی بیشتر لینکهای زیر پیشنهاد میشود :
|
1 2 |
https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html https://codereviewvideos.com/course/ansible-tutorial/video/ansible-handlers |
- آزمایش شده بر روی Ansible نسخهی 2.5.1
- آزمایش شده بر روی سیستم عامل Ubuntu 18.04