.ansible/tmp ディレクトリパスが変更されると、Ansible プレイブックは失敗します。

.ansible/tmp ディレクトリパスが変更されると、Ansible プレイブックは失敗します。

本質的にここで何が起こるのかは、ansibleを実行しているユーザーアカウントが制御ノードとターゲットクライアントの両方に存在することです。

ただし、ターゲットクライアントでは、サーバー回復プロセスの一部としてアカウントのホームディレクトリの場所を/home/voltron/から/opt/home/voltron/に変更することの1つです(いいえ、残念ながらアカウントは、サーバー作成時にこのディレクトリを使用して生成できません。

これを行うためにansibleを使用するときの問題は、「ターゲットクライアント(この場合はサーバーt-rex)の〜/ .ansible / tmpの作業tmpディレクトリへのアクセスが失われる」ことです。これにより、次のエラーメッセージで後続の再生でプレイブックが失敗します。

fatal: [t-rex]: UNREACHABLE! => {"changed": false, "msg": "Authentication or permission failure. In some cases, you may have been able to authenticate and did not have permissions on the remote directory. Consider changing the remote temp path in ansible.cfg to a path rooted in \"/tmp\". Failed command was: ( umask 77 && mkdir -p \"` echo /home/volton/.ansible/tmp/ansible-tmp-1507231978.66-123682989430617 `\" && echo ansible-tmp-1507231978.66-123682989430617=\"` echo /home/volton/.ansible/tmp/ansible-tmp-1507231978.66-123682989430617 `\" ), exited with result 1", "unreachable": true}

私がしなければならないことは、事実を再収集し、プレイブックの実行中にターゲットクライアントの作業ディレクトリの場所が変更されたことをansibleに通知するだけです。しかし、これは役に立たないようです。 (少なくとも私はそうです)

モジュールがAnsibleアカウント(voltron)タスクの一時ディレクトリの場所を変更した直後に再生中の設定モジュールを呼び出そうとしたときに実行されるように見えますが、次の「import_playbook」ステートメントを読むと上記のエラーが発生します。エラーが発生すると、すべてが爆発し、かなり長いスクリプトを再実行する必要があります。明らかに、次の実行は、ansibleが作業ディレクトリが変更されたことを知っているために機能します。

タスク一時ディレクトリの場所が変更されたときにAnsibleに通知する方法を知っている人はいますか?教えてください。ありがとうございます!

ベストアンサー1

なぜ変えないの?一時ディレクトリアンセボはどのような用途に使用されますか?たとえば、ansible.cfg次のコレクションから

remote_tmp = /var/tmp/notfiddledwithduringtheplay

その後、起動プロセスの一部として作成する必要があり、一部のパブリックtmpディレクトリを使用する危険があります。

local_tmpローカルシステムの内容に触れるのにもディレクトリがあります。

おすすめ記事