Eu tenho alguns hosts do Windows configurados com o WinRM para permitir que o Ansible os conecte. Não como os hosts Linux podem fazer ssh-copy-id para evitar inserir as credenciais, tenho que colocar minha senha de administrador no /etc/ansible/host para conectar essas máquinas Windows:
cat /etc/ansible/hosts
[win]
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
[win:vars]
ansible_user= administrator
ansible_password=mypasswd
ansible_port=5986
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
Existe alguma maneira de evitar ter a senha de texto simples no arquivo hosts?
Eu sou muito novo no Ansible, qualquer ajuda é apreciada!
Decida o que você deseja usar para gerenciamento de segredos na máquina que executa o Ansible.
plugins de pesquisa que obtêm dados de algum sistema.
ansible-doc -t lookup --list
e reveja a lista, os relacionados a segredos tendem a ter "pass" ou "segredo" no nome. Ou "chaveiro" que envolve o armazenamento secreto do sistema operacional local (serviço secreto do GNOME, KDE kwallet).Depois de configurar qualquer sistema de segredos, consulte-o no Ansible com uma expressão de pesquisa:
A outra opção é ansible-vault , o utilitário de criptografia de arquivo integrado. (Observe que isso é diferente do cofre da HashiCorp, que, se você tivesse, poderia usar com seu plug-in de pesquisa.) Para isso, você pode criptografar o arquivo de inventário ou um arquivo vars separado onde você coloca os segredos.
Dica bônus:
/etc/ansible/hosts
é apenas o arquivo de inventário padrão. Você pode alterar o arquivo de inventário padrão em ansible.cfg. Ou forneça um na linha de comando com-i
opção. Assim, você pode ter inventário em seu diretório pessoal e editá-lo sem tocar em diretórios privilegiados.É para isso que serve o ansible-vault (como Ron Trunk já mencionou)
Uma maneira de lidar com isso é alterar sua entrada de exemplo assim:
e então, em seu cofre você teria
Você realmente deveria conferir https://docs.ansible.com/ansible/latest/user_guide/vault.html