Tarefa known_hosts Ansible falha

2

Eu sou novo com o ansible e criei um pequeno playbook ansible, que adiciona a chave do host github ssh a known_hosts em cada servidor:

---
- hosts: all
  tasks:
  - name: Add github to ssh known-hosts
    known_hosts:
     name: "TS_github"
     key: "github.com,192.30.252.129 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=="

Mas, por alguns motivos, esse manual falha em todos os hosts com erro:

fatal: [clusterapp-1]: FAILED! => {"changed": false, "cmd": "/usr/bin/ssh-keygen -F TS_github -f /tmp/tmpgROT5p", "failed": true, "msg": "", "rc": 1, "stderr": "", "stdout": "", "stdout_lines": []}

Por alguns motivos, ele usa /tmp/tmpgROT5p como arquivo-chave, o que é falso por razões óbvias. Como declarado no documento ansible , o módulo known_hosts deve usar "(homedir) + /. Ssh / known_hosts", mas não aconteceu.

Eu inicio o manual da seguinte forma:

 ansible-playbook -i hosts github_keys.yml

Eu também tentei iniciar o playbook com a chave -vvv, mas não obtive nenhuma informação útil.

Meu arquivo ansible.cfg:

[defaults]
transport=ssh
host_key_checking=false
    
por toshyak 27.04.2016 / 16:23

2 respostas

4

O name deve ser o nome do host.

Portanto, no seu caso, o nome precisa ser github.com e key deve ser github.com,192.30.252.129 ssh-rsa AAAAB3NzaC1yc2EAA...

---
- hosts: all
  tasks:
  - name: Add github to ssh known-hosts
    known_hosts:
     name: github.com
     key: "github.com,192.30.252.129 ssh-rsa AAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=="
    
por 19.07.2016 / 19:23
1

Como alternativa, você pode usar um arquivo .ssh / config para o usuário específico ignorar o known_hosts se estiver apenas tentando evitar ser avisado e isso se encaixa em seus requisitos de segurança.

Host *     StrictHostKeyChecking não

    
por 04.10.2016 / 18:58

Tags