これは他の質問でも議論されていますが、私はさまざまなオプションを試しましたが、何も私の問題を解決していないようです。Ansibleプレイブックで役割を実行しているときにリモートマシンのユーザーになる方法
私は覚えていることを覚えているし、プレイブックを実行しようとしています。私はそれにタスクを持っている一つの役割を持っています。私はリモートマシン上でユーザーjohnとしてプレイブック全体を実行したい。再生帳はコピー作業から始まります。私がbecomeとbecome_userを使い始めるまで、すべてがうまくいきました。私は、主要なplaybbokに指定することによって、ユーザーJohnとしての役割を実行してみました:
---
- hosts: target-machine.com
roles:
- role: installSoftware
become: yes
become_user: john
脚本を実行するときに、私は次のコマンドを実行します。
SUDO password:
のために私を促し
ansible-playbook -s major.yml -K
リモートターゲットマシンに存在するユーザーjohnのパスワードを入力します。すぐにそれが脚本を実行を開始すると、それはジョンのように、ユーザーが必要とし、文句タスクでハング:
fatal: [target.com]: FAILED! => {"failed": true, "msg": "Failed to get information on remote file (/home/john/software.zip): MODULE FAILURE"}
私はまた、次のことを試してみました:
---
- hosts: target-machine.com
become: yes
become_user: john
roles:
- role: installSoftware
ユーザーとして全体の脚本を実行するようにジョンこれは、再びSUDOのパスワードの入力を要求してから5分後に文句を言う:
fatal: [openam.ansible-target.com]: FAILED! => {"changed": false, "failed": true, "module_stderr": "", "module_stdout": "\r\nSorry, try again .\r\n[sudo via ansible, key=kchjtpjorgnvaksspqvgwzzkgtjnxsyv] password: \r\nsudo: 1 incorrect password attempt\r\n", "msg": "MODULE FAILURE"}
私が入力したパスワードが正しいですが。 SOにそれは私がansible.cfgファイルで行ったSSHタイムアウトを増やすことが示唆された。
[ssh_connection]
ssh_args = -o ServerAliveInterval=60 -o ControlMaster=auto -o ControlPersist=1m
Iミラーリングしたいすべては、私は、ターゲットマシン上で実行されるものである:
su john
Enter Password:
john$
任意の助けがします感謝する。ありがとうございました。
返信いただきありがとうございますが、「あなたがログインしているユーザー」と言いましたが、コントロールマシンのユーザーまたはターゲットマシンのユーザーを参照していますか?私は、anacible.cfgファイルに何も変更せずに2番目の方法を試してみましたが、同じ結果にjohnユーザーのパスワードを入れました。私はまた、シェルのデバッグを追加しました:エコー$ USERの部分がなくて、それは "ルート"を示しました、つまり、私は切り替えたいターゲットマシン上でrootユーザーとしてプレイブックを実行します。すべてのポインタ? – user3044240
"返信いただきありがとうございますが、"あなたがログインしているユーザー "と言えば、コントロールマシンのユーザーまたはターゲットマシンのユーザーを参照していますか? - ターゲットマシン上のユーザー。 'ansible_user'をどうやって設定しましたか?適切な場所にいることを確認するのは時々難しいことがあり、Anipalがそれを拾い上げています。'-vvv'をあなたの安全なコマンドに追加すると、sshコマンドに関する情報が表示されます。あなたが慎重に見ていれば、どのユーザーに接続しているのかを見ることができます。 –
私はansible-playbook -s major.yml -K -vvv ..私は、ホストのファイルにjohnとして記述されている場合、それはポート22でjohnとしてターゲットマシンに接続しようとしているが、認証が失敗したと言う: [machine-target.com]:実行不能! => {"changed":false、 "msg": "認証に失敗しました"、 "unreachable":true}正しいパスワードを入力します。 – user3044240