다음을 실행한다고 가정하십시오.
$ 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
$
나는 그것이 성공적 이었음을 확신합니다.
원격 호스트 (MyTestHost)에서 내 스크립트에 의해 "Hello World"가 에코 / 인쇄 된 위치 / 방법은 무엇입니까? 아니면 스크립트의 반환 / 종료 코드?
내 연구에 따르면 모듈 실행 콜백 또는 해당 라인에서 무언가를 가로 채고 로그 파일을 작성하는 플러그인을 작성할 수 있습니다. 나는 그것으로 내 시간을 낭비하지 않는 것을 선호합니다.
예를 들어 아래의 stdout과 같은 것입니다 (나는 ansible-playbook이 아닌 ansible을 실행하고 있음에 유의하십시오) :
$ 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
쉘 스크립트입니다.