La directiva Ansible Become para ejecutar comandos como usuario especificado

Ansible Become Directive Run Commands



Con Ansible, puede realizar varias operaciones en máquinas remotas utilizando comandos sin formato o libros de jugadas de Ansible. De forma predeterminada, un libro de jugadas de Ansible se ejecuta en el host remoto como el mismo usuario en el controlador de Ansible. Eso significa que si necesita ejecutar un comando como otro usuario en la máquina remota, deberá especificarlo explícitamente en su libro de jugadas de Ansible.

Para implementar la funcionalidad de ejecutar comandos como otro usuario, deberá utilizar la función sudo que está disponible en los sistemas Linux. La directiva Ansible Become le permite ejecutar comandos como el usuario especificado.







La información del usuario se especifica en un libro de jugadas de Ansible utilizando las variables convertidas, como Become_pass, para especificar la contraseña del usuario Become_user, así como qué usuario puede ejecutar el comando.



Cómo ejecutar tareas de Ansible como root

Para ejecutar un comando específico como usuario root en Ansible, puede implementar la directiva Become y establecer el valor en 'verdadero'. Hacer esto le indica a Ansible que implemente sudo sin argumentos al ejecutar el comando.



Por ejemplo, considere un libro de jugadas de Ansible que actualiza el paquete del servidor MySQL y luego lo reinicia. En las operaciones normales de Linux, deberá iniciar sesión como usuario root para realizar dichas tareas. En Ansible, simplemente puede llamar a la directiva Become: yes, como se muestra a continuación:





- hosts: todos

volverse:

Tareas:

- nombre: ejecución de Ansiblecomoroot y update sys

mmm:

nombre: servidor mysql

estado: último

- nombre:

servicio.servicio:
nombre: mysqld

estado: reiniciado

En el libro de jugadas anterior, usamos la directiva Become y no especificamos el usuario Become_user, ya que cualquier comando bajo la directiva Become se ejecuta como root de forma predeterminada.

Esto es similar a especificarlo como:



- hosts: todos

volverse:

Become_user: root

Tareas:

- nombre: ejecución de Ansiblecomoroot y update sys

mmm:
nombre: servidor mysql

estado: último

- nombre: servicio.servicio:

nombre: mysqld

estado: reiniciado

Cómo ejecutar tareas de Ansible como Sudo

Para ejecutar una tarea de Ansible como un usuario específico, en lugar del usuario root normal, puede usar la directiva Become_user y pasar el nombre de usuario del usuario para ejecutar la tarea. Esto es como usar el comando sudo -u en Unix.

Para implementar la directiva Become_user, primero debe activar la directiva Become, ya que Become_user no se puede utilizar sin esta directiva activada.

Considere el siguiente libro de jugadas, en el que el comando se ejecuta como el usuario de nadie.

- nombre: Ejecute unmando comootro usuario(nadie)
mando:psde

volverse:cierto

Become_method:su

Become_user: nadie

conviértete en banderas:'-s / bin / bash'

En el fragmento de libro de jugadas anterior, implementamos las directivas Become, Become_user y otros convertidos.

  1. conviértase en método : Esto establece el método de escalamiento de privilegios, como su o sudo.
  2. directiva Become_user : Esto especifica el usuario con el que ejecutar el comando; esto no implica convertirse en: sí.
  3. conviértete en banderas : Esto establece las banderas que se utilizarán para la tarea especificada.

Ahora puede ejecutar el libro de jugadas anterior con el archivo ansible-playbook filename.yml y ver el resultado por sí mismo. Para las tareas con una salida, es posible que deba implementar el módulo de depuración.

Cómo ejecutar Ansible con contraseña

Para ejecutar una directiva de conversión que requiere una contraseña, puede decirle a Ansible que solicite una contraseña cuando invoque el libro de jugadas especificado.

Por ejemplo, para ejecutar un libro de jugadas con una contraseña, ingrese el siguiente comando:

ansible-playbook Become_pass.yml--preguntar-convertirse-pasar

También puede especificar el indicador -K, que realiza operaciones similares al comando anterior. Por ejemplo:

ansible-playbook Become_pass.yml-PARA

Una vez especificada, se le pedirá una contraseña cuando se ejecuten las tareas.

NOTA : También puede usar la directiva Become en los comandos sin procesar de Ansible AD HOC usando el indicador -b. Para obtener más información, consulte la documentación que se proporciona a continuación:

https://linkfy.to/becomeDocumentation

Conclusión

Después de leer este artículo, ahora debería saber cómo usar la directiva Ansible BECOME para realizar la escalada de privilegios para varias tareas.

Por razones de seguridad, es mejor implementar restricciones para varias cuentas y especificar explícitamente cuándo se utilizan. Por lo tanto, la escalada de privilegios es un aspecto importante del uso de sudo y su en Ansible.