Ansible escalada de privilegios una vez por jugada

Ansible escalada de privilegios una vez por jugada

Estoy usando AnsiblebecomeFuncionalidad para ejecutar jugadas con un usuario diferente. Aquí hay un ejemplo de mi site.yml:

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

Esto funciona como se esperaba: Ansible se utiliza ansible_userpara conectarse webservery sudoluego ejecutar las tareas en los roles definidos como root. Sin embargo, se ejecuta sudouna vez por tarea en cada una de las funciones, lo que genera una sobrecarga significativa ya que la ejecución sudoes bastante lenta.

¿Cómo configuro Ansible para aplicar su becomeconfiguración una vez por juego en lugar de una vez por tarea?

Respuesta1

Es posible realizar una escalada de privilegios solo una vez por jugada utilizandoMitógeno para Ansible.

De su documentación:

Se utiliza una conexión por destino, además de una invocación sudo por cuenta de usuario. Esto es mucho mejor que la multiplexación SSH combinada con canalización, ya que se puede mantener un estado significativo en la RAM entre pasos y los registros del sistema no se envían spam con eventos de autenticación repetidos.

Mitogen también proporciona beneficios de rendimiento adicionales para ejecutar jugadas, como la reutilización de intérpretes de Python.

Sin embargo, no es compatible con todas las configuraciones de Ansible, ya que reemplaza partes importantes de Ansible. Sus listas de documentación.diferencias notables con Vanilla Ansible, algunos de los cuales podrían requerir cambios en los manuales o podrían hacer que su uso sea completamente inviable.

información relacionada