Ho notato che Ansible rimuove lo script temporaneo utilizzando un punto e virgola per separare i comandi bash.Salvare gli script di shell temporanea ansible invece di eliminare
Ecco un esempio del comando:
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'
C'è un modo per dire ansible per sostituire il punto e virgola con un doppio commerciale o per dirgli di salvare lo script o l'uscita del contenuto durante l'esecuzione ansible- playbook?
Sto cercando di eseguire il debug di un errore in questo script e in questo momento l'unica cosa che appare è questo:
failed: [build] => {"changed": false, "failed": true}
msg: ConnectionError(ProtocolError('Connection aborted.', error(2, 'No such file or directory')),)
Non funziona. Non ci sono file in ~/.ansible/tmp/ – hfranco
Questo funziona per me. Stai controllando la macchina remota? Ecco dove vengono eseguiti i file Python. –
Volevo solo dire che se il tuo playbook ha come target 'localhost', Ansible * fa * copia i file in ~ ~/.ansible/tmp' sulla macchina che hai usato per eseguire' ANSIBLE_KEEP_REMOTE_FILES = 1 ansible-playbook ... ' . Questo rende più facile l'uso di [pdb-clone] (https://bitbucket.org/xdegaye/pdb-clone/wiki/Home) per il debug. Basta aggiungere (temporaneamente) 'da pdb_clone import pdb; pdb.set_trace_remote() 'direttamente nelle fonti Ansible vicino a dove si sospetta che il problema si trovi, e quindi esegui' pdb-attach' in un altro terminale quando raggiunge il punto di interruzione. (Puoi anche eseguire il debug in remoto, ma è un po 'più complicato.) – evadeflow