2016-10-26 4 views
2

これは他の質問でも議論されていますが、私はさまざまなオプションを試しましたが、何も私の問題を解決していないようです。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$ 

任意の助けがします感謝する。ありがとうございました。

答えて

0

デフォルトでは、becomesuではなくsudoを使用します。その結果、パスワードAnsibleは、あなたがログインしているユーザーのパスワードがであり、変更するユーザーではなくであることを確認します。この変更はby settingbecome_methodからsuに変更できます。

いつもそのホスト上のすべてのタスクを別のユーザーとして実行したい場合は、代わりにansible_userと設定します。詳細については、the inventory documentationを参照してください。

+0

返信いただきありがとうございますが、「あなたがログインしているユーザー」と言いましたが、コントロールマシンのユーザーまたはターゲットマシンのユーザーを参照していますか?私は、anacible.cfgファイルに何も変更せずに2番目の方法を試してみましたが、同じ結果にjohnユーザーのパスワードを入れました。私はまた、シェルのデバッグを追加しました:エコー$ USERの部分がなくて、それは "ルート"を示しました、つまり、私は切り替えたいターゲットマシン上でrootユーザーとしてプレイブックを実行します。すべてのポインタ? – user3044240

+0

"返信いただきありがとうございますが、"あなたがログインしているユーザー "と言えば、コントロールマシンのユーザーまたはターゲットマシンのユーザーを参照していますか? - ターゲットマシン上のユーザー。 'ansible_user'をどうやって設定しましたか?適切な場所にいることを確認するのは時々難しいことがあり、Anipalがそれを拾い上げています。'-vvv'をあなたの安全なコマンドに追加すると、sshコマンドに関する情報が表示されます。あなたが慎重に見ていれば、どのユーザーに接続しているのかを見ることができます。 –

+0

私はansible-playbook -s major.yml -K -vvv ..私は、ホストのファイルにjohnとして記述されている場合、それはポート22でjohnとしてターゲットマシンに接続しようとしているが、認証が失敗したと言う: [machine-target.com]:実行不能! => {"changed":false、 "msg": "認証に失敗しました"、 "unreachable":true}正しいパスワードを入力します。 – user3044240

関連する問題