web-dev-qa-db-fra.com

Enregistrez les scripts Shell Ansible temporaires au lieu de les supprimer

J'ai remarqué qu'Ansible supprime le script temporaire à l'aide d'un point-virgule pour séparer les commandes bash.

Voici un exemple de commande:

EXEC ssh -C -tt -v -o ControlMaster=auto -o ControlPersist=60s -o 
ControlPath="/Users/devuser/.ansible/cp/ansible-ssh-%h-%p-%r" -o
KbdInteractiveAuthentication=no -o
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey
-o PasswordAuthentication=no -o ConnectTimeout=10 build /bin/sh -c
'LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 /usr/bin/python
/home/ec2-user/.ansible/tmp/ansible-tmp-1430847489.81-75617096172775/docker;
rm -rf
/home/ec2-user/.ansible/tmp/ansible-tmp-1430847489.81-75617096172775/
>/dev/null 2>&1'

Existe-t-il un moyen de dire à ansible de remplacer le point-virgule par une double esperluette ou de lui dire de sauvegarder le script ou d'afficher le contenu lors de l'exécution de ansible-playbook?

J'essaie de déboguer une erreur dans ce script et pour l'instant la seule chose qui apparaît est la suivante:

failed: [build] => {"changed": false, "failed": true}
msg: ConnectionError(ProtocolError('Connection aborted.', error(2, 'No such file or directory')),)
26
Josh Unger

J'ai trouvé la variable d'environnement -

export ANSIBLE_KEEP_REMOTE_FILES=1

Réglez-le, puis réexécutez ansible-playbook, puis ssh et cd sur ~/.ansible/tmp/pour rechercher les fichiers.

45
Josh Unger