- با استفاده از این ماژول میتوان دستوراتی را به صورت مستقیم بر روی خادمهای تحت کنترل اجرا کرد.
- به عنوان مثال کد زیر باعث میشود تا :
- دستور whoami بر روی تمامی خادمهای تحت مدیریت اجرا شود.
---
- name: PlayBook
hosts: all
gather_facts: no
tasks:
- name: run command
command: whoami
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml -v
- در صورتی که کد بالا به صورت موفقیت آمیز اجرا شده باشد، خروجیای مشابه زیر دریافت خواهید کرد :
Using /etc/ansible/ansible.cfg as config file
PLAY [PlayBook] *************************************************************************************************************************************************
TASK [run command] *************************************************************************************************************************************************
changed: [172.16.0.248] => {"changed": true, "cmd": ["whoami"], "delta": "0:00:00.001956", "end": "2020-03-14 08:06:59.604045", "rc": 0, "start": "2020-03-14 08:06:59.602089", "stderr": "", "stderr_lines": [], "stdout": "root", "stdout_lines": ["root"]}
changed: [172.16.0.245] => {"changed": true, "cmd": ["whoami"], "delta": "0:00:00.003185", "end": "2020-03-14 15:36:44.263692", "rc": 0, "start": "2020-03-14 15:36:44.260507", "stderr": "", "stderr_lines": [], "stdout": "root", "stdout_lines": ["root"]}
changed: [172.16.0.247] => {"changed": true, "cmd": ["whoami"], "delta": "0:00:00.001457", "end": "2020-03-14 08:06:59.707917", "rc": 0, "start": "2020-03-14 08:06:59.706460", "stderr": "", "stderr_lines": [], "stdout": "root", "stdout_lines": ["root"]}
PLAY RECAP *********************************************************************************************************************************************************
172.16.0.245 : ok=1 changed=1 unreachable=0 failed=0
172.16.0.247 : ok=1 changed=1 unreachable=0 failed=0
172.16.0.248 : ok=1 changed=1 unreachable=0 failed=0
- به عنوان مثال کد زیر باعث میشود تا :
- مسیری مشخص و پوستهای مشخص برای ابزار ls در نظر گرفته شود.
- hosts: all
tasks:
- name: Ansible command module with chdir and executable parameters
command: ls -lrt
args:
chdir: /home/mdtutorials2/command_chdir_example
executable: /bin/bash
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- در صورتی که پروندهای با نام shell.txt وجود نداشته باشد، پروندهای با این نام ساخته شود.
- hosts: all
tasks:
- name: Ansible shell module creates parameter example.
command: touch shell.txt
args:
chdir: /root/ansible
creates: shell.txt
- نکته: استفاده از پارامتر create باعث میشود تا در صورتی که پروندهی shell.txt وجود داشته باشد، با خطا یا هشداری رو به رو نشویم.
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- در صورتی که پروندهای با نام shell.txt وجود داشته باشد، پروندهای با این نام پاک شود.
- hosts: all
tasks:
- name: Ansible command module creates parameter example.
command: rm shell.txt
args:
chdir: /root/ansible
removes: shell.txt
- نکته: استفاده از پارامتر remove باعث میشود تا در صورتی که پروندهی shell.txt وجود نداشته باشد، با خطا یا هشداری رو به رو نشویم.
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به منظور مطالعهی بیشتر لینکهای زیر پیشنهاد میشود :
https://www.mydailytutorials.com/introduction-shell-command-module-ansible/
https://docs.ansible.com/ansible/latest/modules/command_module.html
- آزمایش شده بر روی Ansible نسخهی 2.5.1
- آزمایش شده بر روی سیستم عامل Ubuntu 18.04