Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

UNREACHABLE Linux

Bom dia, estou com problema para subir a maquina, no meu caso tenho windows, logo criei uma maquina no vagrant ansible para simular as aulas nela, tentei efetuar os passou para o erro descrito, mas apareceu o seguinte erro:

vagrant@ubuntu-bionic:/vagrant$ ssh-copy-id -i configs/ssh-keys.pub vagrant@172.17.177.40       /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "configs/ssh-keys.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

/usr/bin/ssh-copy-id: ERROR: ssh: connect to host 172.17.177.40 port 22: No route to host

meu vagrantfile está assim:

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

  config.vm.box = "ubuntu/trusty64"

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

  config.vm.define "wordpress" do |wordpress|
      wordpress.vm.network "private_network", ip: "172.17.177.40"
    wordpress.vm.provision "shell",
      inline: "cat /vagrant/configs/id_bionic.pub >> .ssh/authorized_keys"

    wordpress.vm.provision "shell",
      inline: "cp /vagrant/id_bionic /home/vagrant/id_bionic && \
            chmod 600 /home/vagrant/id_bionic && \
                chown vagrant:vagrant /home/vagrant/id_bionic"
  end

  config.vm.define "ansi" do |ansi|

    ansi.vm.box = "ubuntu/bionic64"

        ansi.vm.provider "virtualbox" do |vb|
            vb.memory = 512
            vb.cpus = 1
            vb.name = "bionic_ansi"
    end 

    ansi.vm.network "public_network", ip: "172.17.177.41"

    ansi.vm.provision "shell",
      inline: "apt-get update && \
                apt-get install -y software-properties-common && \
                apt-add-repository --yes --update ppa:ansible/ansible && \
                apt-get install -y ansible"

    ansi.vm.provision "shell",
    inline: "cat /vagrant/configs/id_bionic.pub >> .ssh/authorized_keys"

    ansi.vm.provision "shell",
    inline: "cp /vagrant/id_bionic /home/vagrant/id_bionic && \
            chmod 600 /home/vagrant/id_bionic && \
                chown vagrant:vagrant /home/vagrant/id_bionic"

  end

end
5 respostas

Olá Leonardo, tudo bem? Veja se entendi bem o seu cenário, você tem o Windows na sua máquina física correto? E então criou uma máquina virtual com o Ubuntu para provisionar outras máquinas virtuais usando o Vagrant e o Ansible dentro dessa sua máquina virtual com Ubuntu é isso? Você conseguiu criar essa outra máquina virtual dentro do Ubuntu? Porque nesse caso você vai precisar utilizar a paravirtualização, para que essa máquina virtual usando o Ansible seja criada com sucesso.

Jonilson,

Utilizo o windows, então criei duas maquinas virtuais uma ANSIBLE e uma WORDPRESS(pois não consigo utilizar o ansible no windows), após isso dentro da minha maquina ANSIBLE que é um linux Ubuntu e possui o Ansible instado fiz as atividades propostas do curso, porém não consigo conectar com a maquina WORDPRESSS que foi criada.

Leonardo, pelo que pude perceber e por essa linha aqui do erro:

ERROR: ssh: connect to host 172.17.177.40 port 22: No route to host

Não está funcionando a comunicação entre as máquinas, você já tentou realizar um PING da máquina Ubuntu (Ansible) para a máquina WORDPRESS, tenta executar o comando:

ping 172.17.177.40

Informa pra gente o resultado!

Outra coisa, você criou as máquinas virtuais usando o virtualbox correto? Se sim, então você precisa configurar a rede para que as duas máquinas possam se comunicar, nesse cenário você precisa acessar as configurações das duas máquinas (ANSIBLE e WORDPRESS) pelo virtualbox e ir na parte de rede das duas, e colocar o Adaptador 1 com a opção "Habilitar Placa de Rede" ativada e conectador a "NAT", e também colocar o Adaptador 2 com a opção "Habilitar Placa de Rede" ativada e conectador a "Rede Interna". Tenta desligar as duas máquinas realizar esse procedimento e depois inicar as máquinas novamente e tenta executar a cópia da chave SSH.

Estou usando o virtualbox. Com a configuração que você mencionou não consigo nem conectar na maquina do vagrant com o comando "vagrant ssh". Vale lembra que estou usando o provisionador do vagrant logo não devo alterar as configurações diretamente pelo VirtualBox, dessa forma utilizo o comando

wordpress.vm.network "private_network", ip: "172.17.177.40"

Dessa forma configuro a placa de rede em modo NAT.

Reiniciei as maquinas com os comandos

vagrant halt
vagrant up
$ vagrant up
Bringing machine 'wordpress' up with 'virtualbox' provider...
Bringing machine 'ansi' up with 'virtualbox' provider...
==> wordpress: Checking if box 'ubuntu/trusty64' version '20190514.0.0' is up to date...
==> wordpress: Clearing any previously set forwarded ports...
==> wordpress: Clearing any previously set network interfaces...
==> wordpress: Preparing network interfaces based on configuration...
    wordpress: Adapter 1: nat
    wordpress: Adapter 2: hostonly
==> wordpress: Forwarding ports...
    wordpress: 22 (guest) => 2222 (host) (adapter 1)
==> wordpress: Running 'pre-boot' VM customizations...
==> wordpress: Booting VM...
==> wordpress: Waiting for machine to boot. This may take a few minutes...
    wordpress: SSH address: 127.0.0.1:2222
    wordpress: SSH username: vagrant
    wordpress: SSH auth method: private key
==> wordpress: Machine booted and ready!
==> wordpress: Checking for guest additions in VM...
    wordpress: The guest additions on this VM do not match the installed version of
    wordpress: VirtualBox! In most cases this is fine, but in rare cases it can
    wordpress: prevent things such as shared folders from working properly. If you see
    wordpress: shared folder errors, please make sure the guest additions within the
    wordpress: virtual machine match the version of VirtualBox you have installed on
    wordpress: your host and reload your VM.
    wordpress:
    wordpress: Guest Additions Version: 4.3.40
    wordpress: VirtualBox Version: 6.0
==> wordpress: Configuring and enabling network interfaces...
==> wordpress: Mounting shared folders...
    wordpress: /vagrant => C:/wordpress_com_ansible
==> wordpress: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> wordpress: flag to force provisioning. Provisioners marked to run always will still run.
==> ansi: Checking if box 'ubuntu/bionic64' version '20200206.0.0' is up to date...
==> ansi: Clearing any previously set forwarded ports...
==> ansi: Fixed port collision for 22 => 2222. Now on port 2200.
==> ansi: Clearing any previously set network interfaces...
==> ansi: Preparing network interfaces based on configuration...
    ansi: Adapter 1: nat
    ansi: Adapter 2: bridged
==> ansi: Forwarding ports...
    ansi: 22 (guest) => 2200 (host) (adapter 1)
==> ansi: Running 'pre-boot' VM customizations...
==> ansi: Booting VM...
==> ansi: Waiting for machine to boot. This may take a few minutes...
    ansi: SSH address: 127.0.0.1:2200
    ansi: SSH username: vagrant
    ansi: SSH auth method: private key
==> ansi: Machine booted and ready!
==> ansi: Checking for guest additions in VM...
    ansi: The guest additions on this VM do not match the installed version of
    ansi: VirtualBox! In most cases this is fine, but in rare cases it can
    ansi: prevent things such as shared folders from working properly. If you see
    ansi: shared folder errors, please make sure the guest additions within the
    ansi: virtual machine match the version of VirtualBox you have installed on
    ansi: your host and reload your VM.
    ansi:
    ansi: Guest Additions Version: 5.2.34
    ansi: VirtualBox Version: 6.0
==> ansi: Configuring and enabling network interfaces...
==> ansi: Mounting shared folders...
    ansi: /vagrant => C:/wordpress_com_ansible
==> ansi: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> ansi: flag to force provisioning. Provisioners marked to run always will still run.

Nos logs não achei nada demais, estou sem ideia do que pode ser.

Nos meus ultimos testes na minha maquina windows realizei a conexão ssh

ssh -i vagrant_id_rsa vagrant@172.17.177.40

Dai funcionou, porém com a outra maquina não foi

ssh -i vagrant_id_rsa vagrant@172.17.177.41

solução!

Após vários testes consegui arrumar, as duas maquinas estavam configuradas diferentes como pode ver

wordpress.vm.network "private_network", ip: "172.17.177.40"
ansi.vm.network "public_network", ip: "172.17.177.41"

Uma maquina estava com a configuração diferente da outra após acertar isso começou a apresentar o seguinte erro:

172.17.177.40 | FAILED | rc=-1 >>
Ansible requires a minimum of Python2 version 2.6 or Python3 version 3.5. Current version: 3.4.3 (default, Nov 12 2018, 22:25:49) [GCC 4.8.4]

No arquivo host na tag ansible_python_interpreter coloquei /usr/bin/python2 em vez de /usr/bin/python3 com isso funcionou.