每次播放一次 Ansible 權限提升

每次播放一次 Ansible 權限提升

我正在使用 Ansible 的become與不同使用者一起運行遊戲的功能。這是我的一個例子site.yml

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

這按預期工作:Ansible 用於ansible_user連接到webserversudo隨後在定義的角色中運行任務,如root.然而,它確實sudo在每個角色中的每個任務運行一次,這會導致顯著的開銷,因為執行速度sudo相當慢。

如何設定 Ansible 以become每次播放一次而不是每個任務套用一次設定?

答案1

透過利用,每次遊戲只能進行一次權限升級Ansible 的 Mitogen

從他們的文檔中:

除了每個使用者帳戶一次 sudo 呼叫之外,每個目標還使用一個連線。這比 SSH 多路復用與管道技術相結合要好得多,因為在步驟之間可以在 RAM 中維護重要狀態,並且系統日誌不會充斥著重複的身份驗證事件。

Mitogen 也為運行 play 提供了額外的效能優勢,例如 Python 解譯器的重複使用。

然而,它並不與所有 Ansible 配置相容,因為它取代了 Ansible 的重要部分!他們的文檔列表與普通 Ansible 的顯著差異,其中一些可能需要更改劇本或可能使其完全不可行。

相關內容