14
respostas

UNREACHABLE! erro - Aula 4

Na atividade da aula 4, tive outro problema ao executar o comando ansible-playbook -i hosts provisioning.yml

PLAY [all] *********************************************************************

TASK [Gathering Facts] *********************************************************
fatal: [172.17.177.40]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 172.17.177.40 port 22: No route to host\r\n", "unreachable": true}
    to retry, use: --limit @/home/naiara/Documentos/alura/wordpress_com_ansible/provisioning.retry

PLAY RECAP *********************************************************************
172.17.177.40              : ok=0    changed=0    unreachable=1    failed=0

tentei executar o comando --limit, mas ele não reconheceu. Em pouco tempo tive muitos problemas e dificuldades com o Ansible! Não sei se sou só eu :(

14 respostas

Naiara, bom dia.

Talvez o problema que você esteja tendo seja com o vagrant e não com o ansible, pra que seja possível identificar o problema, passa as seguintes informações:

  • Conteúdo do arquivo: hosts
  • Conteúdo do arquivo: Vagrantfile
  • Retorno do comando: vagrant validate
  • Retorno do comando: vagrant status

hosts:

[wordpress]
172.17.177.40

Vagrantfile:


Vagrant.configure("2") do |config|

  config.vm.box = "ubuntu/trusty64"

  config.vm.provider "virtualbox" do |v|
    v.memory = 1024
  end

  config.vm.define "wordpress" do |m|
    m.vm.network "private_network", ip: "172.17.177.40"
  end

end
$ vagrant validate
==> vagrant: A new version of Vagrant is available: 2.0.4!
==> vagrant: To upgrade visit: https://www.vagrantup.com/downloads.html

Vagrantfile validated successfully.
$ vagrant status
Current machine states:

wordpress                 poweroff (virtualbox)

The VM is powered off. To restart the VM, simply run `vagrant up`

Naiara, aparentemente o problema é que a máquina está fora do ar, provavelmente você reiniciou seu pc e então a máquina do vagrant também está fora, como informa o retorno do comando vagrant status.

Por isso o ansible não reconhecia o ip da máquina do wordpress, a máquina deve estar no ar, para que o ansible reconheça. Execute

vagrant up

Em seguinda tente rodar o playbook do ansible novamente, provavelmente irá funcionar, caso funcione, pode encerrar o tópico com esse comentário como solução do problema, caso não tenha mais nenhuma dúvida.

Oi Rodrigo, estava confiante por que a VM tava desligada. Mas não foi. Continua o mesmo erro.

$ vagrant status
Current machine states:

wordpress                 running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

Mas agora deu permissão negada

$ ansible-playbook -i hosts provisioning.yml 

PLAY [all] *********************************************************************

TASK [Gathering Facts] *********************************************************
fatal: [172.17.177.40]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).\r\n", "unreachable": true}
    to retry, use: --limit @/home/naiara/Documentos/alura/wordpress_com_ansible/provisioning.retry

PLAY RECAP *********************************************************************
172.17.177.40              : ok=0    changed=0    unreachable=1    failed=0

Opa, agora mudou o erro, é outra coisa, provavelmente a permissão do arquivo private_key.

Passa o retorno do seguinte comando (executar no diretório que você está rodando o playbook, onde se encontra o arquivo hosts e provisioning.yml):

whoami && find . -type f -name 'private_key' | while read key ; do ls -l $key ; done

Segue o retorno, Rodrigo

$ whoami && find . -type f -name 'private_key' | while read key ; do ls -l $key ; done
naiara
-rw------- 1 naiara naiara 1675 Abr 12 09:51 ./.vagrant/machines/wordpress/virtualbox/private_key

Aparentemente a permissão está correta, no mesmo diretório, executa os comandos abaixo para inserir a chave no seu arquivo de ssh:

sshpass -V

ssh-agent bash

ssh-add .vagrant/machines/wordpress/virtualbox/private_key

Em seguida, tente executar novamente o playbook, caso não tenha sucesso, informe o retorno do primeiro comando acima e o retorno dos seguintes comandos:

ansible -vvvv all -i hosts -m ping --private-key=./.vagrant/machines/wordpress/virtualbox/private_key

python -V

$ sshpass -V
sshpass 1.05 (C) 2006-2011 Lingnu Open Source Consulting Ltd.
This program is free software, and can be distributed under the terms of the GPL
See the COPYING file for more information.
$ ssh-agent bash
$ ssh-add .vagrant/machines/wordpress/virtualbox/private_key 
Identity added: .vagrant/machines/wordpress/virtualbox/private_key (.vagrant/machines/wordpress/virtualbox/private_key)
$ ansible-playbook -i hosts provisioning.yml 

PLAY [all] *********************************************************************

TASK [Gathering Facts] *********************************************************
fatal: [172.17.177.40]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).\r\n", "unreachable": true}
    to retry, use: --limit @/home/naiara/Documentos/alura/wordpress_com_ansible/provisioning.retry

PLAY RECAP *********************************************************************
172.17.177.40              : ok=0    changed=0    unreachable=1    failed=0
$ python -V
Python 2.7.12
$ ansible -vvvv all -i hosts -m ping --private-key=./.vagrant/machines/wordpress/virtualbox/private_key
ansible 2.5.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = 
.....
172.17.177.40 | UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 19: Applying options for *\r\ndebug1: auto-mux: Trying existing master\r\ndebug1: Control socket \"/home/naiara/.ansible/cp/132f049711\" does not exist\r\ndebug2: resolving \"172.17.177.40\" port 22\r\ndebug2: ssh_connect_direct: needpriv 0\r\ndebug1: Connecting to 172.17.177.40 [172.17.177.40] port 22.\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug1: fd 3 clearing O_NONBLOCK\r\ndebug1: Connection established.

....

Authentications that can continue: publickey,password\r\ndebug3: start over, passed a different list publickey,password\r\ndebug3: preferred gssapi-with-mic,gssapi-keyex,hostbased,publickey\r\ndebug3: authmethod_lookup publickey\r\ndebug3: remaining preferred: ,gssapi-keyex,hostbased,publickey\r\ndebug3: authmethod_is_enabled publickey\r\ndebug1: Next authentication method: publickey\r\ndebug1: Offering RSA public key: .vagrant/machines/wordpress/virtualbox/private_key\r\ndebug3: send_pubkey_test\r\ndebug3: send packet: type 50\r\ndebug2: we sent a publickey packet, wait for reply\r\ndebug3: receive packet: type 51\r\ndebug1: Authentications that can continue: publickey,password\r\ndebug1: Trying private key: /home/naiara/Documentos/alura/wordpress_com_ansible/.vagrant/machines/wordpress/virtualbox/private_key\r\ndebug3: sign_and_send_pubkey: RSA SHA256:GY9z2aljs85SIaBEEFTG6W+WpdqI5H6eTghaJ+wjVd0\r\ndebug3: send packet: type 50\r\ndebug2: we sent a publickey packet, wait for reply\r\ndebug3: receive packet: type 51\r\ndebug1: Authentications that can continue: publickey,password\r\ndebug2: we did not send a packet, disable method\r\ndebug1: No more authentication methods to try.\r\nPermission denied (publickey,password).\r\n", 
    "unreachable": true
}

Quando eu dei o vagrant ssh uma vez, ele pediu senha, ai eu coloquei vagrant, e funcionou. Quando eu errei ele deu o mesmo erro do Permissão (publickey,password). Será que tenho que passar essa senha em algum lugar?

$ vagrant ssh-config
Host wordpress
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /home/naiara/Documentos/alura/wordpress_com_ansible/.vagrant/machines/wordpress/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

Então Naiara, provavelmente não é um problema com senha, pois o retorno do comando: "vagrant ssh-config" foi "PasswordAuthentication no".

Talvez seja um bug que já foi resolvido em versões mais novas, o ideal seria atualizar os softwares aí e destruir essa vm pra gerar uma nova posteriormente, com uma nova chave, com os softwares atualizados você deixará de sofrer com os bugs já corrigidos, executa o seguinte comando:

echo "########" && ansible --version && echo "########" && vagrant -v && echo "########" && cat /etc/*release*

Ele vai retornar a versão do ansible, vagrant e SO, aí você posta aqui pra eu te passar as atualizações necessárias.

Naiara, bom dia.

Resolveu o problema?

Oi Rodrigo! Não funcionou ainda, achei o ansible (até então) bem problemático.Tô com tempo um pouco corrido, mas vou recomeçar do zero (de novo). E caso, boas notícias, ou se eu achar o problema, aviso aqui. Obrigada mesmo assim

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software