Prática recomendada para criar usuários Ansible

2

Qual é a melhor prática para lidar com usuários locais e remotos em uma pergunta?

Meu entendimento atual é que temos uma máquina local e remota com um usuário local padrão e um usuário administrador padrão na máquina remota. No caso padrão, joe irá gerar um par de chaves SSH e copiar sua chave pública para o remoto '.ssh / authorised_keys'.

localhost                                           remotehost
=========                                           ==========
                                                    // sudo root user
user:joe                                            user:admin
passsword:xxx                                       password:admin123
.ssh/id_rsa.pub ----------------------------------> ./ssh/authorised_keys

Estou correto em dizer que as configurações padrão do ansible.cfg seriam

[defaults]
ansible_user=joe
ansible_ssh_user=admin
private_key_file=/home/pauloconnell/.ssh/id_rsa.pem

Me deparei com este ticket que recomenda a criação de um usuário específico ansible para executar os comandos remotos link

Novamente, a imagem ficaria assim com um novo 'ansible_ssh_user' criado na máquina local, sua senha salva em um cofre e  então o mesmo usuário criado no servidor remoto com as permissões de grupo corretas

localhost                                           remotehost
=========                                           ==========
                                                    // sudo root user
user:joe                                            user:admin
passsword:xxx                                       password:admin123
~~.ssh/id_rsa.pub ----------------------------------> ./ssh/authorised_keys~~
user:ansible_ssh_user                               user:ansible_ssh_user    
.ssh/id_rsa.pub ----------------------------------> ./ssh/authorised_keys

Gostaria de confirmar como o arquivo de configuração mudaria nesse caso?

[defaults]
ansible_user=ansible_ssh_user
ansible_ssh_user=ansible_ssh_user
private_key_file=??
    
por emeraldjava 22.01.2016 / 17:19

1 resposta

1

Sim e não.

  • você não precisa de ansible_ssh_user e ansible_user , pois o uso de ansible_ssh_* variables está obsoleto desde a versão 2.0. Veja esta nota :

Ansible 2.0 has deprecated the “ssh” from ansible_ssh_user, ansible_ssh_host, and ansible_ssh_port to become ansible_user, ansible_host, and ansible_port. If you are using a version of Ansible prior to 2.0, you should continue using the older style variables (ansible_ssh_*). These shorter variables are ignored, without warning, in older versions of Ansible.

  • Na maioria dos casos, você não precisa definir private_key_file .

  • Você não precisa ter ansible_user na máquina de controle. Você só precisa ter certeza de que seu usuário regular na máquina de controle pode fazer o login como ansible_user no host remoto, o que significa que você precisa copiar a chave ssh para o host remoto. ssh-copy-id ansible_user@remote-host deve ser tudo que você precisa.

por 25.01.2016 / 09:02

Tags