Disons que j'exécute ce qui suit.
$ 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
$
Je sais avec certitude que cela a réussi.
Où / comment puis-je voir le "Hello World" renvoyé / imprimé par mon script sur l'hôte distant (MyTestHost)? Ou le code retour / sortie du script?
Mes recherches me montrent qu'il serait possible d'écrire un plugin pour intercepter les rappels d'exécution de module ou quelque chose sur ces lignes et d'écrire un fichier journal. Je préférerais ne pas perdre mon temps avec ça.
Par exemple, quelque chose comme le stdout ci-dessous (notez que j'utilise ansible et non 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
etset +x
dans un script shell.