特定のタスクを実行するためにPlayBookでremote_userを使用する方法はありますか?これは企業環境のためであるため、アクセス権は非常に制限されています(例:/ etc / sudoersへのアクセス権はありません)。
解決策が必要です。
制御ノードは= myserver@xyz |パスワードなしでweblogic@server1およびchandru@server1にsshできます(キーベース)。
タスク1:weblogicで実行する必要がある
タスク2:chandruによって実行される必要がある
今、私は簡単なタスクを実行するために2つのプレイブックを使用しています。
playbook1.yml -u weblogic ( for the first task)
playbook2.yml -u chandru ( for the second task)
weblogicユーザーになると、Chandruの_userまたは_sudoにはなりません。
私の制御ノードは、パスワードなしで両方のID(chandruとweblogic)にSSHを介して接続できます。
答え1
キーワード リモートユーザージョブにも使用できます。たとえば、テストしてみてください。
- command: whoami
register: result
remote_user: weblogic
become: false
- debug:
var: result.stdout
- command: whoami
register: result
remote_user: chandru
become: false
- debug:
var: result.stdout
プロセスには3つのエンティティが含まれます。
- プレイブックを実行しているユーザー(No1)
- リモートホストにログインするユーザー(No2)
- No2は(No3)のユーザーになることができます
- 変わりやすいリモートユーザーNo2を定義します。もしリモートユーザーNo2 は No1 として定義されません。
- 環境「ビーカミング:リアル」No2が次にアップグレードされる予定です。ユーザーになるNo3(デフォルト:ルート)。もし「なる: 偽」Ansible はリモートホストで No2 として実行されます。
その結果、あなたが望むもの丸太他のものリモートユーザー(No2)をリモートホストに接続し、しないように(アップグレード)他のものユーザーになる(3番)。これも説明します「なる: 偽」ミッション中。