Por que minha VM libvirt não se comunica com repositórios apt quando o wget e o ping funcionam?

1

Estou tentando usar o Vagrant e o Puppet para facilitar a duplicação de uma configuração de vários servidores para nossos websites. O fluxo de trabalho recomendado é o vagrant up do servidor puppetmaster especificamente primeiro, e depois usá-lo para provisionar o restante dos servidores. Então, estou executando este script de shell no master:

#!/usr/bin/env bash
set -e

if [ "$EUID" -ne "0" ] ; then
    echo "Script must be run as root." >&2
    exit 1
fi

if [ -e /etc/init.d/puppetmaster ] ; then
    echo "Puppetmaster is already installed."
    exit 0
fi

echo "Installing Puppet repo for Debian Wheezy"
wget -qO /tmp/puppetlabs-release-wheezy.deb \
    https://apt.puppetlabs.com/puppetlabs-release-wheezy.deb

dpkg -i /tmp/puppetlabs-release-wheezy.deb
rm /tmp/puppetlabs-release-wheezy.deb
aptitude update
echo Installing Puppetmaster.
aptitude install -y puppetmaster facter
echo "Puppet installed!"
cp /tmp/puppet.conf /etc/puppet/puppet.conf
puppet resource package hiera ensure=installed
echo "Hiera installed!"
cp /tmp/hiera.yaml /etc/puppet/hiera.yaml

Minha caixa é baremettle / debian-7.5.

Vagrantfile:

Vagrant.configure("2") do |config|
    # Supports local cache, don't waste bandwidth.
    # Do 'vagrant plugin install vagrant-cachier'
    # https://github.com/fgrehm/vagrant-cachier
    if Vagrant.has_plugin?("vagrant-cachier")
        config.cache.auto_detect = true
        config.cache.scope = :box
    end

    # All Vagrant configuration is done here. The most common configuration
    # options are documented and commented below. For a complete reference,
    # please see the online documentation at vagrantup.com.

    # Every Vagrant virtual environment requires a box to build off of.
    config.vm.box = "baremettle/debian-7.5"

    config.vm.provider :libvirt do |lv|
        lv.driver = 'kvm'
        lv.connect_via_ssh = false
        lv.storage_pool_name = 'default'
    end

    config.ssh.forward_agent = true
    config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"

    config.vm.define :memcache, primary: true do |mem|
        mem.vm.hostname = "memcache.local"
        mem.vm.network :private_network, ip: "192.168.122.20"

        mem.vm.provider :libvirt do |lv|
            lv.memory = 1024
        end

        mem.vm.provision :file, source: "master/puppet.conf", destination: "/tmp/puppet.conf"
        mem.vm.provision :file, source: "master/hiera.yaml", destination: "/tmp/hiera.yaml"
        mem.vm.provision :shell, path: "bootstrap.sh"
        mem.vm.provision :puppet, module_path: "master/modules", manifests_path: "master/manifests", manifest_file: "default.pp"
        mem.vm.provision :puppet_server do |puppet|
            puppet.options = '--verbose --waitforcert 30'
            puppet.puppet_server = "memcache.local"
        end
        mem.vm.synced_folder "puppet/manifests", "/etc/puppet/environments/production/manifests", type: 'nfs'
        mem.vm.synced_folder "puppet/modules", "/etc/puppet/environments/production/modules", type: 'nfs'
        mem.vm.synced_folder "master/hieradata", "/etc/puppet/environments/production/hieradata", type: 'nfs'
    end
end

Agora, o problema ocorre quando aptitude update é executado. Apenas fica lá sem qualquer mensagem de erro. Nenhum uso de CPU do processo. Nenhum tempo de espera acontece, nem mesmo o 0% de início do progresso.

Isso soa como um problema de firewall, mas o download do .deb com o wget funciona. Eu posso pingar mirrors.kernel.org, que é o repositório listado em sources.list. Se eu realmente quisesse, tenho certeza que poderia encontrar os arquivos de pacotes corretos e baixá-los manualmente, mas ninguém quer fazer isso.

vagrant ssh funciona bem, se eu interromper o comando up primeiro. Fazer sudo apt-get update ou install faz a mesma coisa.

O que poderia estar errado? Eu não sei mais o que verificar. O APT usa alguma variante estranha do HTTP que está atingindo o meu firewall? Eu sei que isso costumava funcionar quando eu olhei pela última vez para este projeto no ano passado.

Vitals:

  • x86_64
  • Linux Mint 17 (host)
  • Debian Wheezy 7.5 (convidado)
  • Vagrant 1.6.5
  • libvirt0 1.2.2-0ubuntu13.1.6
  • vagrant-libvirt plugin 0.0.24
por IslandUsurper 30.10.2014 / 21:27

0 respostas