- با استفاده از این ماژول میتوان انواع دست نوشتهها را بر روی خادمهای تحت مدیریت اجرا کرد.
- به عنوان مثال کد زیر باعث میشود تا :
- دست نوشتهی script.sh از مسیر opt/ بر روی گروهی خاص از خادمهای تحت مدیریت اجرا شود.
---
- name: PlayBook
hosts: centos-servers
gather_facts: no
tasks:
- name: Run a script from /opt
script: /opt/script.sh --some-argument 1234
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- دست نوشتهی httpd_installer.sh در صورتی اجرا شود که پرونده index.html در مسیر var/www/html/ وجود نداشته باشد.
---
- name: PlayBook
hosts: centos-servers
gather_facts: no
tasks:
- name: Run a script only if file.txt does not exist on the remote node
script: /opt/httpd_installer.sh --some-argument 1234
args:
creates: /var/www/html/index.html
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- دست نوشتهی httpd_remover.sh در صورتی اجرا شود که پرونده index.html در مسیر var/www/html/ وجود داشته باشد.
---
- name: PlayBook
hosts: centos-servers
gather_facts: no
tasks:
- name: Run a script only if file.txt exists on the remote node
script: /opt/httpd_installer.sh --some-argument 1234
args:
removes: /var/www/html/index.html
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- نکته: به طور کلی دست نوشتهها توسط ابزارهای دیگری یا اصطلاحا مفسرها اجرا میشوند.
- به عنوان مثال دست نوشتههای نوشته شده با زبان Bash توسط پروندهای اجرایی در مسیر bin/bash/ اجرا میشوند.
- به عنوان مثالی دیگر، دست نوشتههای نوشته شده با زبان Python توسط پروندهای اجرایی در مسیر usr/bin/python/ اجرا میشوند.
- نکته: ممکن است مسیر قرارگیری این مفسرها در توزیعهای مختلف متفاوت باشد. لذا با استفاده از پارامتر executable میتوان تعیین نمود که مفسر مورد نظر از چه مسیری در خادمهای تحت مدیریت، اجرا و خوانده شود.
- به عنوان مثال کد زیر باعث میشود تا :
- دست نوشتهی script.sh توسط برنامهی اجرایی usr/bin/bash/ در خادمهای تحت مدیریت ، اجرا شود.
---
- name: PlayBook 06
hosts: centos-servers
gather_facts: no
tasks:
- name: Run a script using an executable in a non-system path
script: /opt/script.sh
args:
executable: /usr/bin/bash
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به منظور مطالعهی بیشتر لینکهای زیر پیشنهاد میشود :
https://docs.ansible.com/ansible/latest/modules/script_module.html
- آزمایش شده بر روی Ansible نسخهی 2.5.1
- آزمایش شده بر روی سیستم عامل Ubuntu 18.04