Ansible ssh como usuario y ejecutar tiene root (esperar como)

8

Tengo que administrar un número importante de hosts donde solo hay un usuario capaz de acceder desde SSH (llamémoslo foo) y luego tengo que iniciar sesión como root para ejecutar comandos privilegiados.

El usuario de Foo no tiene ningún tipo de privilegios de sudo, por lo que me veo obligado a iniciar sesión como root para ejecutar comandos privilegiados. De hecho, estoy usando un script de espera para hacer este trabajo (inicio de sesión ssh como foo, inicio de sesión como root a través de su) y quiero cambiar a Ansible. Sé que podría crear un nuevo usuario y darle privilegios de sudo o, básicamente, darle privilegios de sudo a foo, pero ¿es posible hacer lo mismo que estoy esperando con Ansible?

Me gustaría hacer la conexión ssh como foo y luego ejecutar playbooks o cualquier tipo de comando adhoc como root. No encontré ninguna información en la documentación de Ansible sobre eso, así que pregunto aquí si alguien ya tuvo este tipo de interrogatorio.

Arka
fuente

Respuestas:

13

Con ansible, puedes usar sudoo su:

- hosts: example.com
  gather_facts: False
  su: yes
  su_user: root
  tasks:
    - shell: whoami

También puede hacerlo desde la línea de comando:

ansible-playbook --su --su-user=root --ask-su-pass playbook.yml

Esta funcionalidad ha estado disponible desde esta solicitud de extracción y está presente en 1.6.6 actual.

Dawud
fuente
1
Gracias. ¿Cómo podría tener una contraseña su diferente para cada host? ansible_su_pass no existe
Arka
¿Has encontrado cómo elegir ansible su pass?
jeremieca
A partir de ansible 1.9.4, no puede tener contraseñas diferentes para cada host. Sin embargo, puede tener diferentes claves ssh.
bschlueter