- با استفاده از کلید notify و handlers میتوان اجرای یک یا چند شرط را منوط به اجرای موفقیت آمیز شرطی دیگر کرد.
- به عنوان مثال کد زیر باعث میشود تا :
- ابتدا سرویس httpd بر روی خادمهای تحت مدیریت گروه centos-servers نصب و راه اندازی شود.
- سپس در صورتی که فرآیند نصب و راه اندازی با موفقیت صورت گرفته باشد، سرویس مروبطه روشن شود.
---
- name: PlayBook
hosts: centos-servers
gather_facts: no
tasks:
- name: install apache web server
yum: name=httpd state=latest
notify:
- start apache service
handlers:
- name: start apache service
service: name=httpd state=started
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- ابتدا سرویس Nginx بر روی تمام خادمهای تحت مدیریت نصب و راه اندازی شود.
- سپس در صورتی که فرآیند نصب و راه اندازی با موفقیت صورت گرفته باشد، سرویس مروبطه روشن شود.
---
- hosts: all
tasks:
- name: Install Nginx
apt: pkg=nginx state=installed update_cache=true
notify:
- Start Nginx
handlers:
- name: Start Nginx
service: name=nginx state=started
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- دو سرویس apache و polipo راه اندازی مجدد شوند.
---
- name: PlayBook
hosts: all
gather_facts: yes
handlers:
- name: restart polipo
service:
name: polipo
state: restarted
listen: "restart services"
- name: restart apache
service:
name: apache2
state: restarted
listen: "restart services"
tasks:
- name: restart everything
command: echo "this task will restart the web and proxy services"
notify: "restart services"
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به منظور مطالعهی بیشتر لینکهای زیر پیشنهاد میشود :
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