Apenas começando com Ansible, configurei um usuário Asible na máquina cliente e criei um conjunto de chaves a partir do OpenSSL. Estou executando o Ansible com minha própria conta. Eu especifiquei o arquivo de chave privada e de usuário na configuração Ansible. Eu quero que os comandos remotos para executar como este usuário e este usuário sudo para fazer comandos que exigem elevação.
/etc/ansible/ansible.cfg
private_key_file = /etc/ansible/pka/confman.crt
remote_user = confman
Comandos como este não pedem senhas após a entrada inicial da frase secreta:
ansible all -m ping
O seguinte aviso para uma senha toda vez que eu os executo:
ansible all -m ping -b
Enter passphrase for key '/etc/ansible/private_keys/confman.crt':
(success)
ansible all -m ping --sudo
Enter passphrase for key '/etc/ansible/private_keys/confman.crt':
(success)
ansible all -a "cat /etc/redhat-release"
Enter passphrase for key '/etc/ansible/private_keys/confman.crt':
(success)
Por quê?
Existe alguma maneira de definir a frase secreta? Existe uma maneira mais segura? Eu pretendo rodar ansible remotamente e via cron e via outras ferramentas de automação, onde inserir uma senha não é uma opção.
Como contexto, eu nunca precisei de SSH entre servidores Linux, sempre de uma máquina Windows usando ferramentas como putty, RoyalTS e mRemoteNG, então meu conhecimento ssh é ... esparso. Eu suponho que estou perdendo algo óbvio.