AnsibleはPlaybookの特定のタスクのユーザーになります。

AnsibleはPlaybookの特定のタスクのユーザーになります。

特定のタスクを実行するために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つのエンティティが含まれます。

  1. プレイブックを実行しているユーザー(No1)
  2. リモートホストにログインするユーザー(No2)
  3. No2は(No3)のユーザーになることができます
  • 変わりやすいリモートユーザーNo2を定義します。もしリモートユーザーNo2 は No1 として定義されません。
  • 環境「ビーカミング:リアル」No2が次にアップグレードされる予定です。ユーザーになるNo3(デフォルト:ルート)。もし「なる: 偽」Ansible はリモートホストで No2 として実行されます。

その結果、あなたが望むもの丸太他のものリモートユーザー(No2)をリモートホストに接続し、しないように(アップグレード)他のものユーザーになる(3番)。これも説明します「なる: 偽」ミッション中。

おすすめ記事