- با استفاده از این ماژول میتوان دستوراتی را به صورت مستقیم بر روی خادمهای تحت کنترل اجرا کرد.
- به عنوان مثال کد زیر باعث میشود تا :
- دستور whoami بر روی تمامی خادمهای تحت مدیریت اجرا شود.
|
1 2 3 4 5 6 7 8 |
--- - name: PlayBook hosts: all gather_facts: no tasks: - name: run command <span style="color: #ff0000;">command</span>: <span style="color: #ff0000;">whoami</span> ... |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml <span style="color: #ff0000;">-v</span> |
- در صورتی که کد بالا به صورت موفقیت آمیز اجرا شده باشد، خروجیای مشابه زیر دریافت خواهید کرد :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Using /etc/ansible/ansible.cfg as config file PLAY [PlayBook] ************************************************************************************************************************************************* TASK [run command] ************************************************************************************************************************************************* changed: [172.16.0.248] => {"changed": true, "cmd": ["<span style="color: #ff0000;">whoami</span>"], "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": "<span style="color: #ff0000;">root</span>", "stdout_lines": ["<span style="color: #ff0000;">root</span>"]} changed: [172.16.0.245] => {"changed": true, "cmd": ["<span style="color: #ff0000;">whoami</span>"], "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": "<span style="color: #ff0000;">root</span>", "stdout_lines": ["<span style="color: #ff0000;">root</span>"]} changed: [172.16.0.247] => {"changed": true, "cmd": ["<span style="color: #ff0000;">whoami</span>"], "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": "<span style="color: #ff0000;">root</span>", "stdout_lines": ["<span style="color: #ff0000;">root</span>"]} 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 در نظر گرفته شود.
|
1 2 3 4 5 6 7 |
- hosts: all tasks: - name: Ansible command module with chdir and executable parameters <span style="color: #ff0000;">command</span>: ls -lrt <span style="color: #ff0000;">args</span>: <span style="color: #ff0000;">chdir</span>: /home/mdtutorials2/command_chdir_example <span style="color: #ff0000;">executable</span>: /bin/bash |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- در صورتی که پروندهای با نام shell.txt وجود نداشته باشد، پروندهای با این نام ساخته شود.
|
1 2 3 4 5 6 7 |
- hosts: all tasks: - name: Ansible shell module creates parameter example. <span style="color: #ff0000;">command</span>: touch shell.txt <span style="color: #ff0000;">args</span>: chdir: /root/ansible <span style="color: #ff0000;">creates</span>: shell.txt |
- نکته: استفاده از پارامتر create باعث میشود تا در صورتی که پروندهی shell.txt وجود داشته باشد، با خطا یا هشداری رو به رو نشویم.
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- در صورتی که پروندهای با نام shell.txt وجود داشته باشد، پروندهای با این نام پاک شود.
|
1 2 3 4 5 6 7 |
- hosts: all tasks: - name: Ansible command module creates parameter example. <span style="color: #ff0000;">command</span>: rm shell.txt <span style="color: #ff0000;">args</span>: chdir: /root/ansible <span style="color: #ff0000;">removes</span>: shell.txt |
- نکته: استفاده از پارامتر remove باعث میشود تا در صورتی که پروندهی shell.txt وجود نداشته باشد، با خطا یا هشداری رو به رو نشویم.
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به منظور مطالعهی بیشتر لینکهای زیر پیشنهاد میشود :
|
1 2 |
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