- با استفاده از این ماژول میتوان مدیریت و کنترل بر روی سرویسهای خادمهای تحت مدیریت داشت.
- لازم به ذکر است که این ماژول توانایی پشتیبانی از systemd ، sysV ، upstart و … را دارد.
- به عنوان مثال کد زیر باعث میشود تا :
- در صورتی که سرویس httpd متوقف بود، آن را روشن کند.
---
- name: PlayBook
hosts: centos-servers
gather_facts: no
tasks:
- name: Start service httpd, if not started
service:
name: httpd
state: started
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- در صورتی که سرویس httpd روشن بود، آن را متوقف کند.
---
- name: PlayBook
hosts: centos-servers
gather_facts: no
tasks:
- name: Stop service httpd, if started
service:
name: httpd
state: stopped
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- سرویس httpd به طور کامل راهاندازی مجدد شود.
---
- name: PlayBook
hosts: centos-servers
gather_facts: no
tasks:
- name: Restart service httpd, in all cases
service:
name: httpd
state: restarted
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- تنها تنظیمات سرویس httpd دوباره خوانده شود. (عمل reload)
---
- name: PlayBook
hosts: centos-servers
gather_facts: no
tasks:
- name: Reload service httpd, in all cases
service:
name: httpd
state: reloaded
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- در صورتی که سرویس httpd غیر فعال بود، آن را فعال کند.
---
- name: PlayBook
hosts: centos-servers
gather_facts: no
tasks:
- name: Enable service httpd, and not touch the state
service:
name: httpd
enabled: yes
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- سرویس network تنها برای کارت شبکهی eth0 راه اندازی مجدد شود.
---
- name: PlayBook
hosts: centos-servers
gather_facts: no
tasks:
- name: Restart network service for interface eth0
service:
name: network
state: restarted
args: eth0
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- نکته: امکان دوباره خواندن Unit Files نیز وجود دارد. (ممکن است تغییراتی در پروندههای یونیت مربوط به یک سرویس اعمال کرده باشید، لذا برای راه اندازی مجدد سرویس، نیاز است که این پروندهها نیز دوباره خوانده شوند.)
- به عنوان مثال کد زیر باعث میشود تا :
- در صورتی که سرویس docker متوقف بود، آن را روشن کند.
- hosts: all
tasks:
- name: Ansible service daemon reload example
systemd:
name: docker
state: restarted
daemon_reload: yes
- در مثال بالا از ماژول systemd استفاده شده است.
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به منظور مطالعهی بیشتر لینکهای زیر پیشنهاد میشود :
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