Ansible: usando usuário sudo diferente para hosts diferentes

Ansible: usando usuário sudo diferente para hosts diferentes

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

informação relacionada