- با استفاده از این ماژول میتوان مدیریت و کنترل بر روی سرویسهای خادمهای تحت مدیریت داشت.
- لازم به ذکر است که این ماژول توانایی پشتیبانی از systemd ، sysV ، upstart و … را دارد.
- به عنوان مثال کد زیر باعث میشود تا :
- در صورتی که سرویس httpd متوقف بود، آن را روشن کند.
|
1 2 3 4 5 6 7 8 9 10 |
--- - name: PlayBook hosts: centos-servers gather_facts: no tasks: - name: Start service httpd, if not started <span style="color: #ff0000;">service</span>: name: httpd state: <span style="color: #ff0000;">started</span> ... |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- در صورتی که سرویس httpd روشن بود، آن را متوقف کند.
|
1 2 3 4 5 6 7 8 9 10 |
--- - name: PlayBook hosts: centos-servers gather_facts: no tasks: - name: Stop service httpd, if started <span style="color: #ff0000;">service</span>: name: httpd state: <span style="color: #ff0000;">stopped</span> ... |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- سرویس httpd به طور کامل راهاندازی مجدد شود.
|
1 2 3 4 5 6 7 8 9 10 |
--- - name: PlayBook hosts: centos-servers gather_facts: no tasks: - name: Restart service httpd, in all cases <span style="color: #ff0000;">service</span>: name: httpd state: <span style="color: #ff0000;">restarted</span> ... |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- تنها تنظیمات سرویس httpd دوباره خوانده شود. (عمل reload)
|
1 2 3 4 5 6 7 8 9 10 |
--- - name: PlayBook hosts: centos-servers gather_facts: no tasks: - name: Reload service httpd, in all cases <span style="color: #ff0000;">service</span>: name: httpd state: <span style="color: #ff0000;">reloaded</span> ... |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- در صورتی که سرویس httpd غیر فعال بود، آن را فعال کند.
|
1 2 3 4 5 6 7 8 9 10 |
--- - name: PlayBook hosts: centos-servers gather_facts: no tasks: - name: Enable service httpd, and not touch the state <span style="color: #ff0000;">service</span>: name: httpd <span style="color: #ff0000;">enabled: yes</span> ... |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- سرویس network تنها برای کارت شبکهی eth0 راه اندازی مجدد شود.
|
1 2 3 4 5 6 7 8 9 10 11 |
--- - name: PlayBook hosts: centos-servers gather_facts: no tasks: - name: Restart network service for interface eth0 <span style="color: #ff0000;">service</span>: name: network state: <span style="color: #ff0000;">restarted</span> <span style="color: #ff0000;">args: eth0</span> ... |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- نکته: امکان دوباره خواندن Unit Files نیز وجود دارد. (ممکن است تغییراتی در پروندههای یونیت مربوط به یک سرویس اعمال کرده باشید، لذا برای راه اندازی مجدد سرویس، نیاز است که این پروندهها نیز دوباره خوانده شوند.)
- به عنوان مثال کد زیر باعث میشود تا :
- در صورتی که سرویس docker متوقف بود، آن را روشن کند.
|
1 2 3 4 5 6 7 |
- hosts: all tasks: - name: Ansible service daemon reload example systemd: name: docker state: <span style="color: #ff0000;">restarted</span> <span style="color: #ff0000;">daemon_reload: yes</span> |
- در مثال بالا از ماژول systemd استفاده شده است.
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به منظور مطالعهی بیشتر لینکهای زیر پیشنهاد میشود :
|
1 2 |
https://docs.ansible.com/ansible/latest/modules/service_module.html https://www.mydailytutorials.com/linux-services-using-ansible-systemd-and-service-modules/ |
- آزمایش شده بر روی Ansible نسخهی 2.5.1
- آزمایش شده بر روی سیستم عامل Ubuntu 18.04