问题:将装有ansible的机器上的某个shell脚本复制到受管理的目标主机上,并返回运行结果。
解决一(输出所有有关信息):
[root@localhost ansible]# cat hello.yml
---
- hosts: webservers
user: root
tasks:
- name: copy sh
copy: src=./hello.sh dest=/root/hello.sh
- name: sh hello.sh
shell: sh /root/hello.sh
register: result
- name: print result
debug: var=result verbosity=0
[root@localhost ansible]# ansible-playbook hello.yml
PLAY [webservers] *********************************************************************************************************************************************************
TASK [Gathering Facts] ****************************************************************************************************************************************************
ok: [192.168.10.11]
TASK [copy sh] ************************************************************************************************************************************************************
ok: [192.168.10.11]
TASK [sh hello.sh] ********************************************************************************************************************************************************
changed: [192.168.10.11]
TASK [print result] *******************************************************************************************************************************************************
ok: [192.168.10.11] => {
"result": {
"changed": true,
"cmd": "sh /root/hello.sh",
"delta": "0:00:00.004339",
"end": "2022-01-13 17:37:42.096675",
"failed": false,
"rc": 0,
"start": "2022-01-13 17:37:42.092336",
"stderr": "",
"stderr_lines": [],
"stdout": "hello world 小楚同学!!!",
"stdout_lines": [
"hello world 小楚同学!!!"
]
}
}
PLAY RECAP ****************************************************************************************************************************************************************
192.168.10.11 : ok=4 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[root@localhost ansible]#
解决二(只输出运行结果):
[root@localhost ansible]# cat hello.yml
---
- hosts: webservers
user: root
tasks:
- name: copy sh
copy: src=./hello.sh dest=/root/hello.sh
- name: sh hello.sh
shell: sh /root/hello.sh
register: result
- name: print result
debug: var=result.stdout verbosity=0
[root@localhost ansible]# ansible-playbook hello.yml
PLAY [webservers] *********************************************************************************************************************************************************
TASK [Gathering Facts] ****************************************************************************************************************************************************
ok: [192.168.10.11]
TASK [copy sh] ************************************************************************************************************************************************************
ok: [192.168.10.11]
TASK [sh hello.sh] ********************************************************************************************************************************************************
changed: [192.168.10.11]
TASK [print result] *******************************************************************************************************************************************************
ok: [192.168.10.11] => {
"result.stdout": "hello world 小楚同学!!!"
}
PLAY RECAP ****************************************************************************************************************************************************************
192.168.10.11 : ok=4 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0