デフォルトSSH接続のオーバーライドが必要な状況があります。同じで、今 SUDOユーザーとのSSHログインユーザーの無効化
[dev:vars]
ansible_ssh_user=TargetUser1
我々はansibleマスターとしてジェンキンスエージェントを使用すると、私たちは「JenkinsUser」(ジェンキンス)と「TargetUser1」(ターゲット)との間にSSHを設定していると、インベントリファイルで定義されています私は "TargetUser2"によって所有されている別のタスクセットを持っており、 "TargetUser1"はそれらを実行する権限を持つことができません。しかし、同じ "JenkinsUser"には "TargetUser2"に対するSUDO権限があります。私の脚本は
- hosts: dev
remote_user: JenkinsUser
become_method: sudo
become_user: TargetUser2
tasks:
- command: whoami
、のように期待される結果になります:JenkinsUserはTargetUser1に、デフォルトのSSHの設定を上書きし、TargetUser2にホストとsudoをターゲットにSSHでしょう。
ランタイム結果:SSH接続はREMOTE_USER一方TargetUser1の代わりJenkinsUserとして起こっている:
TASK [setup]
<xyz.somehost.com> ESTABLISH CONNECTION FOR USER: TargetUser1 on PORT
22 TO xyz.somehost.com
私は、ホストにログインするとユーザーになることを理解していますが、それがターゲットホストユーザー(TargetUser1)になります。 JenkinsUser)?安全でない文書は、それがどのように機能するかについての明確な説明を提供していない。 – Jninja