
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