สมมติว่าฉันดำเนินการต่อไปนี้
$ cat test.sh
#!/bin/bash
echo Hello World
exit 0
$ cat Hello.yml
---
- hosts: MyTestHost
tasks:
- name: Hello yourself
script: test.sh
$ ansible-playbook Hello.yml
PLAY [MyTestHost] ****************************************************************
GATHERING FACTS ***************************************************************
ok: [MyTestHost]
TASK: [Hello yourself] ********************************************************
ok: [MyTestHost]
PLAY RECAP ********************************************************************
MyTestHost : ok=2 changed=0 unreachable=0 failed=0
$
ฉันรู้แน่ว่ามันสำเร็จ
ฉันจะเห็น "Hello World" สะท้อน / พิมพ์โดยสคริปต์ของฉันบนรีโมตโฮสต์ (MyTestHost) ได้อย่างไร หรือรหัสส่งคืน / ออกของสคริปต์?
งานวิจัยของฉันแสดงให้ฉันเห็นว่าเป็นไปได้ที่จะเขียนปลั๊กอินเพื่อสกัดกั้นการเรียกกลับการเรียกใช้โมดูลหรือบางอย่างในบรรทัดเหล่านั้นและเขียนไฟล์บันทึก ฉันไม่อยากเสียเวลาไปกับสิ่งนั้น
เช่นบางอย่างเช่น stdout ด้านล่าง (โปรดทราบว่าฉันใช้งาน Ansible และไม่ใช่ ansible-playbook):
$ ansible plabb54 -i /project/plab/svn/plab-maintenance/ansible/plab_hosts.txt -m script -a ./test.sh
plabb54 | success >> {
"rc": 0,
"stderr": "",
"stdout": "Hello World\n"
}
$
set -x
และset +x
ในเชลล์สคริปต์