Ansible: usar diferentes usuarios de sudo para diferentes hosts

Ansible: usar diferentes usuarios de sudo para diferentes hosts

Recientemente comencé a usar ansible. Tenemos servidores donde la aplicación se configura con diferentes usuarios, como en el servidor xyz.com, el usuario de Unix es xyz_user, etc.

Entonces, en el caso de xyz.com,

ansible xyz.com -a 'command' -u xyz_user -K

¿Cómo podemos configurar el usuario sudo en la configuración ansible para que sudo automáticamente al usuario particular definido para el servidor?

Respuesta1

Puedes aprovechar los libros de jugadas de Ansible para este tipo de cosas.

p.ej

--- 
- hosts: host1:host2 
  user: user1 
  sudo: yes
  tasks: 
  - name: update package list 
    action: command /usr/bin/apt-get update 
  - name: upgrade packages 
    action: command /usr/bin/apt-get -u -y dist-upgrade 
- hosts: host3 
  user: ubuntu
  sudo: yes 
  tasks: 
  - name: update package list 
    action: command /usr/bin/apt-get update 
  - name: upgrade packages 
    action: command /usr/bin/apt-get -u -y dist-upgrade

Espero que funcione para ti :)

Respuesta2

Recomendaría utilizar variables del host basadas en el inventario o las variables de grupo. Esto le permite configurar el usuario ssh por host o por grupo de hosts. La ventaja de este enfoque es que es transparente para sus manuales. En los playbooks solo tienes que preocuparte por instalar cosas y no por acceder.

Un ejemplo de cómo configurar el usuario por host y grupo:

[xyz]
www.xyz.com ansible_ssh_user=xyz_user

[abc]
www.abc.com

[abc:vars]
ansible_ssh_user=abc_user

Y aquí está la documentación que explica cómo funciona mucho mejor que yo:http://docs.ansible.com/intro_inventory.html

información relacionada