Estoy usando Ansiblebecome
Funcionalidad 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_user
para conectarse webserver
y sudo
luego ejecutar las tareas en los roles definidos como root
. Sin embargo, se ejecuta sudo
una vez por tarea en cada una de las funciones, lo que genera una sobrecarga significativa ya que la ejecución sudo
es bastante lenta.
¿Cómo configuro Ansible para aplicar su become
configuració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.