2015-09-11 18 views
5

Ho un problema di rete con una casella vagabonda centos7. Quando imposto una rete privata, con IP fisso, questo è ben vincolante per primo, ma si perde dopo alcuni secondi/minuti.Centos7 con rete privata persa IP fisso

vagrant up 
==> default: Forcing shutdown of VM... 
==> default: Destroying VM and associated drives... 
==> default: Running cleanup tasks for 'shell' provisioner... 
Bringing machine 'default' up with 'virtualbox' provider... 
==> default: Importing base box 'sfeirbenelux/centos7'... 
==> default: Matching MAC address for NAT networking... 
==> default: Checking if box 'sfeirbenelux/centos7' is up to date... 
==> default: Setting the name of the VM: poc_docker 
==> default: Fixed port collision for 22 => 2222. Now on port 2200. 
==> default: Clearing any previously set network interfaces... 
==> default: Preparing network interfaces based on configuration... 
    default: Adapter 1: nat 
    default: Adapter 2: hostonly 
==> default: Forwarding ports... 
    default: 22 => 2200 (adapter 1) 
==> default: Running 'pre-boot' VM customizations... 
==> default: Booting VM... 
==> default: Waiting for machine to boot. This may take a few minutes... 
    default: SSH address: 127.0.0.1:2200 
    default: SSH username: vagrant 
    default: SSH auth method: private key 
    default: Warning: Connection timeout. Retrying... 
    default: 
    default: Vagrant insecure key detected. Vagrant will automatically replace 
    default: this with a newly generated keypair for better security. 
    default: 
    default: Inserting generated public key within guest... 
    default: Removing insecure key from the guest if its present... 
    default: Key inserted! Disconnecting and reconnecting using new SSH key... 
==> default: Machine booted and ready! 
==> default: Checking for guest additions in VM... 
    default: The guest additions on this VM do not match the installed version of 
    default: VirtualBox! In most cases this is fine, but in rare cases it can 
    default: prevent things such as shared folders from working properly. If you see 
    default: shared folder errors, please make sure the guest additions within the 
    default: virtual machine match the version of VirtualBox you have installed on 
    default: your host and reload your VM. 
    default: 
    default: Guest Additions Version: 5.0.2 
    default: VirtualBox Version: 4.3 
==> default: Setting hostname... 
==> default: Configuring and enabling network interfaces... 
==> default: Running provisioner: shell... 
    default: Running: inline script 
==> default: net.ipv4.ip_forward = 1 
==> default: Setting up swapspace version 1, size = 2097148 KiB 
==> default: no label, UUID=170723d8-1782-4915-a877-4d9874ac7396 
➜ install git:(master) ✗ ping 192.168.100.20 
PING 192.168.100.20 (192.168.100.20): 56 data bytes 
64 bytes from 192.168.100.20: icmp_seq=0 ttl=64 time=0.390 ms 
64 bytes from 192.168.100.20: icmp_seq=1 ttl=64 time=0.252 ms 
64 bytes from 192.168.100.20: icmp_seq=2 ttl=64 time=0.461 ms 
^C 
--- 192.168.100.20 ping statistics --- 
3 packets transmitted, 3 packets received, 0.0% packet loss 
round-trip min/avg/max/stddev = 0.252/0.368/0.461/0.087 ms 
➜ install git:(master) ✗ ping 192.168.100.20 
PING 192.168.100.20 (192.168.100.20): 56 data bytes 
64 bytes from 192.168.100.20: icmp_seq=0 ttl=64 time=0.273 ms 
Request timeout for icmp_seq 1 
Request timeout for icmp_seq 2 
Request timeout for icmp_seq 3 
Request timeout for icmp_seq 4 

Con questo file vagabondo:

vagrant.configure(2) do |config| 

config.vm.box = "centos7" 
config.vm.hostname = "docker-registry" 
config.vm.box_url = "https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box" 

#config.vm.network "public_network" 
config.vm.network "private_network", ip: "192.168.100.20" 
#config.vm.synced_folder ".", "/vagrant", type: "nfs" 

# VirtualBox 
config.vm.provider :virtualbox do |vb| 
    vb.name = "poc_docker" 
    vb.memory = 3072 
    vb.cpus = 2 
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] 
    vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] 
end 


end 

Quando collego sulla scatola, sembra che l'IP è perduto.

sudo /sbin/ifup eth1 

Risolve il problema temporaneamente, ma l'IP si verifica nuovamente. Il riavvio della scatola (arresto vagante & & vagante) sembra risolvere il problema in modo permanente. Ho provato a creare una casella personalizzata centos 7 con Packer (https://atlas.hashicorp.com/sfeirbenelux/boxes/centos7) e riproduco anche il problema.

Suppongo che sia un problema specifico di Centos 7? Hai già lo stesso problema? C'è un modo per risolvere questo problema aggiungendo un comando vagabondo?

Il mio ambiente:

OS X Yosemite ➜ ~ vagabondo --version Vagrant 1.7.2 ➜ ~ VBoxManage --version 4.3.26r98988

+0

strano, ho quasi la stessa configurazione, ma continuo ad eseguire centos 6.5 e funziona perfettamente. puoi mettere lo script della shell che esegui, non fa casino con la rete? inoltre puoi aggiornare la tua casella virtuale guestaddition –

+0

Ho rimosso lo script della shell. Sempre lo stesso –

risposta

8

Sembra che sia un problema a causa della configurazione DHCP (numero: https://github.com/mitchellh/vagrant/issues/5590)

il servizio di rete non ricarica il NetworkManager, quindi continuerà ad attendere il leasing DHCP. e dopo il timeout DHCP, l'IP fisso viene rimosso.

Aggiunta di uno script di shell con disposizione

sudo nmcli connection reload 
sudo systemctl restart network.service 

risolve il problema

EDIT: vagabondo 1.7.3+ corregge il bug troppo;)

+0

Sì, questo lo ha risolto per me, usando Centos 7 con Vagrant 1.9.1. –

+0

Ha funzionato per me su 1.9.1 utilizzando una base centos box installazione dal sito web – chadpeppers

+0

anche questo è funzionato per me .. – sathiyarajan

6

Sembra che ci sia un simile problema nelle nuove versioni di Vagrant (1.9.1).

Una richiesta di pull che consente di risolvere il problema era già fusa (non ancora rilasciato):

https://github.com/mitchellh/vagrant/pull/8148

Se si desidera applicare che fissano si può provare questo (sudo può essere richiesto, a seconda i permessi dei file):

  1. a individuare installazione locale Vagrant (su Fedora è /opt/vagrant/)
  2. Sposta nella cartella della gemma vagabonda:

    cd embedded/gems/gems/vagrant-1.9.1 
    
  3. inizializzare una nuova Git repository e aggiungere il telecomando GitHub:

    git init 
    git remote add origin https://github.com/mitchellh/vagrant.git 
    git fetch --all 
    
  4. Checkout un nuovo ramo e ripristinare al vostro release corrente (per esempio 1.9.1).

    Se non siete sicuri se si dispone di modifiche locali non non uso --hard e fare un git diff/git checkout dopo il reset:

    git checkout -b hotfixes 
    git reset --hard v1.9.1 
    
  5. Ora applicare l'aggiornamento rapido:

    git cherry-pick 96611341a96d7d19fdade5556a110b22c6add22b 
    

Dopodiché uno vagrant reload dovrebbe far apparire bene la rete locale.

+0

Grazie mille per aver postato questo. Ho trascorso la maggior parte della giornata cercando di capirlo. – user1071847

+1

Grazie mille questo risolve il problema. Non capisco davvero perché questa hotfix sia stata unita 11 giorni fa e non si trova ancora nel file binario scaricabile:/Sembra un problema piuttosto importante. – shokora

6

La correzione è menzionato in: https://github.com/mitchellh/vagrant/pull/8148

In /opt/vagrant/embedded/gems/gems/vagrant-1.9.1/plugins/guests/redhat/cap/configure_networks.rb,

aggiungere /sbin/ifup '#{network[:device]}' subito dopo nmcli c reload || true.

+0

Questo mi ha appena salvato il didietro. Grazie mille! –