Giả sử tôi thực hiện những điều sau đây.
$ 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
$
Tôi biết chắc rằng nó đã thành công.
Tôi ở đâu / làm cách nào để xem "Hello World" được tập lệnh của tôi dội lại / in trên máy chủ từ xa (MyTestHost)? Hay mã trả về / thoát của script?
Nghiên cứu của tôi cho thấy có thể viết một plugin để chặn các lệnh gọi lại thực thi mô-đun hoặc một cái gì đó trên những dòng đó và viết một tệp nhật ký. Tôi không muốn lãng phí thời gian của mình cho điều đó.
Ví dụ: một cái gì đó giống như stdout bên dưới (lưu ý rằng tôi đang chạy ansible chứ không phải 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
vàset +x
trong một tập lệnh shell.