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

ansible: Error: retrieving gpg key timed out.

Bom dia Pessoal ,

Estou com dificuldade para fazer a comunicação da maquina do ansible com a maquina mysqlqserver ambas estão em rede. fiz o vagrant destroy em seguida fiz o vagrant up, porem quando chega no ansible é apresentado o erro: ansible: (Reading database ... (Reading database ... 55%abase ... 5% ansible: (Reading database ... 60% ansible: (Reading database ... 65% ansible: (Reading database ... 70% ansible: (Reading database ... 75% ansible: (Reading database ... 80% ansible: (Reading database ... 85% ansible: (Reading database ... 90% ansible: (Reading database ... 95% ansible: (Reading database ... 100% ansible: (Reading database ... ansible: 59791 files and directories currently installed.) ansible: Preparing to unpack .../software-properties-common_0.96.24.32.8_all.deb ... ansible: Unpacking software-properties-common (0.96.24.32.8) over (0.96.24.32.7) ... ansible: Preparing to unpack .../python3-software-properties_0.96.24.32.8_all.deb ... ansible: Unpacking python3-software-properties (0.96.24.32.8) over (0.96.24.32.7) ... ansible: Processing triggers for man-db (2.8.3-2ubuntu0.1) ... ansible: Setting up python3-software-properties (0.96.24.32.8) ... ansible: Processing triggers for dbus (1.12.2-1ubuntu1) ... ansible: Setting up software-properties-common (0.96.24.32.8) ... ansible: Error: retrieving gpg key timed out. The SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed. The output for this command should be in the log above. Please read the output to determine what went wrong.

12 respostas

Oi, Robson, tudo bem?

Você poderia compartilhar seu Vagrantfile com a gente?

Oi Laís estou bem obrigado segue meu como esta o meu arquivo:

$script_mysql = <<-SCRIPT
  apt-get update && \
  apt-get install -y mysql-server-5.7 && \
  mysql -e "create user 'phpuser'@'%' identified by 'pass';"
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"

  # config.vm.define "mysqldb" do |mysql|
  #   mysql.vm.network "public_network", ip: "192.168.15.10"
  #
  #   mysql.vm.provision "shell",
  #     inline: "cat /configs/id_bionic.pub >> .ssh/authorized_keys"
  #   mysql.vm.provision "shell", inline: $script_mysql
  #   mysql.vm.provision "shell",
  #     inline: "cat /configs/mysqld.cnf > /etc/mysql/mysql.conf.d/mysqld.cnf"
  #   mysql.vm.provision "shell", inline: "service mysql restart"
  #
  #   mysql.vm.synced_folder "./configs", "/configs"
  #   mysql.vm.synced_folder ".", "/vagrant", disabled: true
  # end

  config.vm.define "phpweb" do |phpweb|
    phpweb.vm.network "forwarded_port", guest: 8888, host: 8888
    phpweb.vm.network "public_network", ip: "192.168.15.12"

    phpweb.vm.provision "shell",
      inline: "apt-get update && apt-get install -y puppet"

    phpweb.vm.provision "puppet" do |puppet|
      puppet.manifests_path = "./configs/manifests"
      puppet.manifest_file = "phpweb.pp"
    end
  end

  config.vm.define "mysqlserver" do |mysqlserver|
    mysqlserver.vm.network "public_network", ip: "192.168.15.13"
    mysqlserver.vm.provision "shell",
      inline: "cat /vagrant/configs/id_bionic.pub >> .ssh/authorized_keys"
  end

  config.vm.define "ansible" do |ansible|
    ansible.vm.network "public_network", ip: "192.168.15.14"

    ansible.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 "

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

    ansible.vm.provision "shell",
        inline: "ansible-playbook -i /vagrant/configs/ansible/hosts \
                  /vagrant/configs/ansible/playbook.yml"
  end

end

Oi, Robson!

Testei o seu Vagrantfile e deu certo:

Laís@Lais MINGW64 ~/Documents/Alura/vagrant/bionic (master)
$ vagrant status
Current machine states:

phpweb                    running (virtualbox)
mysqlserver               running (virtualbox)
ansible                   running (virtualbox)

E

 ansible: 192.168.15.22              : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Mas rodei com os arquivos de quando fiz o curso. Você poderia disponibilizar o playbook.yml, o hosts, pra gente encontrar esse erro?

Arquivo Hosts:

[mysqlserver]
192.168.15.13

[mysqlserver:vars]
ansible_user=vagrant
ansible_ssh_private_key_file=/home/vagrant/id_bionic
ansible_python_interpreter=/usr/bin/python3
ansible_ssh_common_args='-o StrictHostKeyChecking=no'

Arquivo playbook.yml

- hosts: all
  handlers:
    - name: restart mysql
      service:
        name: mysql
        state: restarted
      become: yes

  tasks:
    - name: 'Instalar MySQL Server'
      apt:
        update_cache: yes
        cache_valid_time: 3600 #1 hora
        name: ["mysql-server-5.7", "python3-mysqldb"]
        state: latest
      become: yes

    - name: 'Criar usuario no MySQL'
      mysql_user:
        login_user: root
        name: phpuser
        password: pass
        priv: '*.*:ALL'
        host: '%'
        state: present
      become: yes

    - name: 'Copiar arquivo mysqld.cnf'
      copy:
        src: /vagrant/configs/mysqld.cnf
        dest: /etc/mysql/mysql.conf.d/mysqld.cnf
        owner: root
        group: root
        mode: 0644
      become: yes
      notify:
        - restart mysql

Oi, Robson, tudo bem?

Então, testei os arvquivos que você me passou com o seu vagrantfile e a máquina subiu com êxito. O erro que você apresentou: `Error: retrieving gpg key timed outnos informa que a máquina demora para pegar a chave gpg e cai nesse time out e não conclui o completamente o processo de subir a máquina. Bem, será que esse problema pode estar relacionado a sua máquina? Me passa informações sobre a sua máquina física.

Bom dia Laís, Mais uma vez obrigado pela ajuda, fico feliz em saber que os arquivos estão corretos. As configurações da minha maquina física são estas abaixo:

Notebook Acer modelo Aspire A515-51 Processador Intel i5 Memoria Ram 8 GB Sistema Operacional Windows 10 64bit

Oi, Robson.

Você teve algum progesso com o máquina do ansible?

Boa Noite Laís tudo bem ? Olha não tive não, o que fiz foi rodar os scripts manualmente para testar ai funciona.

Olá pessoal, ocorreu o mesmo erro comigo. Só consegui rodando os scripts manualmente no terminal da VM.

Isso acaba quebrando a automatização do processo. Acredito que o problema está no comando

apt-add-repository --yes --update ppa:ansible/ansible

Até onde vi, essa opção --update é bem específica do apt-add-repository do Ubuntu, no Mint (máquina que uso) não tem essa flag e o comando me retorna um erro.

Eu faria os passos padrões de fazer o apt-add-repository sem o --update, adicionaria o apt-get update normal antes do apt-get install.

solução!

Boa Tarde Pessoal, Finalmente consegui fazer a automatização por completo tive que alterar a linha do shell, coloquei tudo na mesma linha e adicionei o sudo na frente segue como ficou:

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

Abraço!

Ah, Robson, que legal!

Se não me engano era o que viria na aula seguinte, né? Que bem que deu certo!