Ansible: usando um usuário sudo diferente para hosts diferentes

4

Recentemente começou a usar o ansible. Temos servidores onde o aplicativo é configurado sob diferentes usuários, como no servidor xyz.com, o usuário unix é xyz_user e assim por diante.

Então, no caso do xyz.com,

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

Como podemos definir o usuário sudo em configuração ansible para automaticamente sudo para o usuário específico definido para o servidor?

    
por nitins 04.12.2013 / 13:23

2 respostas

7

Você pode aproveitar os playbooks ansiosos 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ê:)

    
por 09.12.2013 / 01:23
11

Eu recomendaria o uso de variáveis de host com base no inventário ou no grupo vars. 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 playbooks. Nos playbooks, você só precisa se preocupar em instalar coisas e não acessar.

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 do que eu: link

    
por 03.02.2014 / 22:56