
Recentemente comecei a usar o ansible. Temos servidores onde o aplicativo é configurado para diferentes usuários, como no servidor xyz.com, o usuário unix é xyz_user e assim por diante.
Então, no caso de xyz.com,
ansible xyz.com -a 'command' -u xyz_user -K
Como podemos definir o usuário sudo na configuração ansible para sudo automaticamente para o usuário específico definido para o servidor?
Responder1
Você pode aproveitar os manuais ansible para esse tipo de coisa.
por exemplo
---
- 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 você :)
Responder2
Eu recomendaria usar variáveis de host com base no inventário ou vars de grupo. Isso permite que você defina o usuário ssh por host ou por grupo de hosts. A vantagem dessa abordagem é que ela é transparente para seus manuais. Nos manuais, você só precisa se preocupar em instalar as coisas e não em acessá-las.
Um exemplo de como definir o usuário por host e grupo:
[xyz]
www.xyz.com ansible_ssh_user=xyz_user
[abc]
www.abc.com
[abc:vars]
ansible_ssh_user=abc_user
E aqui está a documentação que explica como funciona muito melhor que eu:http://docs.ansible.com/intro_inventory.html