Minha configuração:
Todo servidor físico na rede tem o consul-client instalado e eu gerencio esses servidores usando o script consul_dynamic_inventory que editei para permitir o uso de opções de agrupamento específicas com base na versão principal do sistema operacional, por exemplo, e outras coisas.
Exemplo:
(base) ➜ ansible git:(master) ✗ ansible centos6 -m ping -e ansible_ssh_user=root
Sunday 08 March 2020 16:55:10 +0200 (0:00:00.101) 0:00:00.102 **********
agent-c6-06.node.company.consul | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
agent-c6-01.node.company.consul | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
agent-c6-05.node.company.consul | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
O exemplo acima é possível porque eu configurei /etc/ansible/ansible.cfg
a diretiva "inventory" para apontar para o script consul_dynamic_inventory para não precisar adicionar explicitamente o "-i inventário_arquivo" ao comando.
Meu problema:
Gostaria de adicionar o "ansible_ssh_user=root" aos padrões para não precisar fornecer essa opção sempre que executar o ansible.
Normalmente, para adicioná-lo a todos os hosts, no arquivo de inventário eu adicionaria:
[all:vars]
ansible_ssh_user=root
Mas como meu inventário é na verdade um script, não tenho certeza de onde adicioná-lo, pois adicioná-lo ao script obviamente interrompe sua execução.
Eu tentei adicioná-lo nas seguintes partes do ansible.cfg
arquivo:
[defaults]
[inventory]
[ssh_connection]
Mas sem sucesso.
Minha pergunta:
Onde seria o lugar certo para adicioná-lo?
Ok, encontrei.
Eu estava tentando adicioná-lo como "ansible_ssh_user" em alguns lugares do
ansible.cfg
arquivo, mas acontece que ele deve ser adicionado como: "remote_user" na[defaults]
parte doansible.cfg
arquivo.