プレイごとに 1 回の Ansible 権限昇格

プレイごとに 1 回の Ansible 権限昇格

私はAnsibleのbecome別のユーザーでプレイを実行する機能。以下は私の例ですsite.yml:

- hosts: webserver
  remote_user: ansible_user
  become: true
  roles:
    - role_a
    - role_b

これは期待どおりに動作します。Ansible は を使用してansible_userに接続しwebserversudoその後 として定義されたロールでタスクを実行しますroot。ただし、各ロールでタスクごとに 1 回実行されるためsudo、実行がかなり遅くなり、大きなオーバーヘッドが発生しますsudo

Ansible のbecome-configuration をタスクごとに 1 回ではなく、再生ごとに 1 回適用するように設定するにはどうすればよいですか?

答え1

プレイごとに権限昇格を1回だけ行うには、Ansible 用 Mitogen

彼らのドキュメントから:

ターゲットごとに 1 つの接続が使用され、さらにユーザー アカウントごとに 1 つの sudo 呼び出しが使用されます。これは、ステップ間で重要な状態を RAM に維持でき、システム ログが繰り返し認証イベントでスパムされることがないため、パイプラインと組み合わせた SSH 多重化よりもはるかに優れています。

Mitogen は、Python インタープリターの再利用など、プレイの実行に追加のパフォーマンス上の利点も提供します。

ただし、Ansibleの重要な部分を置き換えるため、すべてのAnsible構成と互換性があるわけではありません。ドキュメントには次のように記載されています。バニラAnsibleとの注目すべき違い、その一部はプレイブックの変更を必要とするか、または完全に使用不可能になる可能性があります。

関連情報