web-dev-qa-db-ja.com

削除する代わりに一時的な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')),)
26
Josh Unger

私は環境変数を見つけました-

export ANSIBLE_KEEP_REMOTE_FILES=1

これを設定してから、ansible-playbookを再実行し、sshでcdして〜/ .ansible/tmp /に移動し、ファイルを見つけます。

45
Josh Unger