Сохраняйте временные сценарии оболочки ansible вместо удаления

Я заметил, что Ansible удаляет временный скрипт, используя точку с запятой для разделения команд bash.

Вот пример команды:

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'

Есть ли способ сказать ansible заменить точку с запятой двойным амперсандом или сказать ему сохранить скрипт или вывести содержимое при запуске ansible-playbook?

Я пытаюсь отладить ошибку в этом скрипте, и сейчас единственное, что появляется, это:

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

person Josh Unger    schedule 05.05.2015    source источник


Ответы (1)


Я нашел переменную окружения -

export ANSIBLE_KEEP_REMOTE_FILES=1

Установите это, затем повторно запустите ansible-playbook, а затем ssh и cd перейдите в ~/.ansible/tmp/, чтобы найти файлы.

person Josh Unger    schedule 05.05.2015
comment
Это работает для меня. Вы проверяете удаленную машину? Вот где выполняются файлы python. - person davegallant; 24.11.2016
comment
Просто хотел вмешаться, чтобы сказать, что если ваш плейбук предназначен для localhost, Ansible действительно копирует файлы в ~/.ansible/tmp на машине, на которой вы запускали ANSIBLE_KEEP_REMOTE_FILES=1 ansible-playbook .... Это немного упрощает использование pdb-clone для отладки. Просто добавьте (временно) from pdb_clone import pdb; pdb.set_trace_remote() непосредственно в исходники Ansible рядом с тем местом, где, как вы подозреваете, лежит проблема, а затем запустите pdb-attach в другом терминале, когда он достигнет точки останова. (Вы также можете отлаживать удаленно, но это немного сложнее.) - person evadeflow; 27.01.2017
comment
где файлы хранятся в окнах? - person Raja Anbazhagan; 05.10.2017