Como definir um usuário ssh padrão para todos os hosts no Ansible?


11

Versão 2.1 do Ansible

Eu tenho um arquivo de inventário hosts

[nodes]
host1
host2
...

E um manual simples site.yml

---
- hosts: all
  tasks:
    - include: tasks/main.yml

Se eu começar a peça,

ansible-playbook -i hosts site.yml -vvvv

Eu recebo esse erro para todos os hosts,

ESTABLISH SSH CONNECTION FOR USER: None
fatal: [host1]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh.", "unreachable": true}
...

No entanto, lendo o documento Ansible Inventory , adicionei ansible_userao hostsarquivo,

[nodes]
host1    ansible_user=root
host2    ansible_user=root
...

Isso resolve o SSH CONNECTION UNREACHABLEerro. No entanto, tenho que adicionar ansible_user=rootao lado de todos os hosts? Ou existe uma maneira mais simples de fazer isso?

Respostas:


11

Verifique o exemplo / ansible.cfgarquivo padrão e você encontrará isso em [defaults]:

# default user to use for playbooks if user is not specified
# (/usr/bin/ansible will use current user as default)
#remote_user = root

Remova o comentário remote_usere defina o usuário como o que você deseja fazer login.

Onde o Ansible chega ansible.cfg? O mesmo arquivo explica:

# nearly all parameters can be overridden in ansible-playbook 
# or with command line flags. ansible will read ANSIBLE_CONFIG,
# ansible.cfg in the current working directory, .ansible.cfg in
# the home directory or /etc/ansible/ansible.cfg, whichever it
# finds first

Obrigado @Deltik, você também poderia responder a essa pergunta ?
Howard Lee

@ HowardLee: Sua outra pergunta é baseada principalmente em opiniões e não é adequada para o Super Usuário.
Deltik 27/05

4

Outra maneira é usar --userpara definir o usuário ssh remoto. Digite ansible-playbook --helppara ler mais. Este é o meu comando típico:

ansible-playbook -i hosts site.yml --user <user> --ask-pass -vvvv

--ask-pass solicitará a digitação da senha para --user


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.