2014-06-09 35 views
26

Vagrant'ın bir kutu profili için kullanımda olduğunu biliyorum. Şimdi Vagrant'ı başka bir kutu için kullanmak istiyorum (b2), fakat bioiq'in örneğinin iletilen 2222 numaralı bağlantı noktasını (yani) tükettiğini söylüyor. Aşağıda ile b2 yapılandırmak eğerVagrant, bu VM üzerindeki belirtilen bağlantı noktalarını iletemez

Şimdi, Serseri hala ayarlamak için diğer SO sorulardan çeşitli yollar denedim 2222.

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

    config.vm.box = 'precise32' 
    config.vm.box_url = 'http://files.vagrantup.com/precise32.box' 

    config.vm.network :forwarded_port, guest: 22, host: 2323 

    # Neither of these fix my problem 
    # config.vm.network :private_network, type: :dhcp 
    # config.vm.network :private_network, ip: "10.0.0.200" 
end 

kullanmaya çalışır: forwarded_port (here bakınız ve here). Ayrıca bu Google Group post'u boşa çıkarmayı denedim. Bu mesajı almaya devam ediyorum.

Vagrant cannot forward the specified ports on this VM, since they 
would collide with some other application that is already listening 
on these ports. The forwarded port to 2222 is already in use 
on the host machine. 

To fix this, modify your current projects Vagrantfile to use another 
port. Example, where '1234' would be replaced by a unique host port: 

    config.vm.network :forwarded_port, guest: 22, host: 1234 

Sometimes, Vagrant will attempt to auto-correct this for you. In this 
case, Vagrant was unable to. This is usually because the guest machine 
is in a state which doesn't allow modifying port forwarding. 

Vagrant'ın neden yönergelerimi sürekli olarak yok saydığını bilmiyorum. Gönderilen yapılandırma çalışmıyor. Bunu aşan var mı? SSH portu durumunda

cevap

71

, Serseri kendisi tarafından liman çarpışmaları çözer:

==> ubuntu64: Fixed port collision for 22 => 2222. Now on port 2200. 

Ancak, yine tarafından kaçınılmaz çarpışma oluşturabilirsiniz:

  1. ilk serseri env oluşturma (Bu liman alacak 2222 for ssh)
  2. Bu env'yi askıya alma (vagrant suspend)
  3. İkinci vagrant env'yi yaratın (şu anda kullanılmadığından 2222 numaralı bağlantı noktasını yeniden alacaktır))
  4. Sen şimdi alıyorsanız hata mesajı alacak vagrant up

tarafından tekrar birinci ortamı görüntülemeye çalışın. herhangi ssh çözme ve tekrar çevreyi başlamak -

çözüm serseri (orada kaydedilmemiş çalışma varsa dikkatli olun o zor yoldan onu kapatacak anlamına gelir) sanal makine durumunu atmak bildirmek için vagrant reload kullanmaktır liman çarpışmaları kendi başına yolda.

+2

. Teşekkürler :) – Nutritioustim

+0

Bu çalışır, ama aynı zamanda çalışan iki vm ortamlarının sahip olmanın temel sorunu çözmek için bu gibi çemberin içinden atlamak zorunda olmamak gibi görünüyor.Orijinal hata mesajıyla (Vagrantfile'de iletilen bağlantı noktasının değiştirilmesi) önerilen eylemin neden çalışmadığı konusunda kafam karıştı. – sixty4bit

+1

Daha fazla VirtualBox'ın hatası o zaman Vagrant'ın. Sanal makinenin ömrü boyunca port iletimini değiştiremezsiniz. Bu nedenle, bir vm'yi duraklattığınızda, soketi serbest bırakır, ancak yeniden başlattığınızda ve bu soket çekildiğinde, bunu anında değiştiremezsiniz ve Sanal Makineyi yeniden başlatmanız gerekir. – m1keil

12

Sadece Mac OSX'in (10.9.4) ve VirtualBox'un (4.3.14) mevcut sürümlerinde, ssh bağlantı noktası 2222'nin kullanılmadığı ve vagrant up tarafından bağlanmadığı bir sorunla karşılaştım. Süresiz olarak seo bağlantısının ssh bağlantısına neden oluyordu.

Bu tam aynı sorun değildir, ama ileriye açık bunu çözüldü:

config.vm.network :forwarded_port, guest: 22, host: 2201, id: "ssh", auto_correct: true 

Bu öneri Serseri GitHub'dan issue 1740 yorumunda geliyor.

22'ye yönlendirilen bağlantı noktasının mı algılandığını veya kimliğin kullanılmış olup olmadığını değil, ancak benim için çalışıyor mu? Sorun devam ederse

+0

Tamam, harika. Bilgi için teşekkürler. Kesinlikle iyi bir referans noktası. – Nutritioustim

+1

Harika cevap, yeniden yükleme basit bir çözümdür, ancak bu, askıya alınmış makinelerde bile yardımcı olur. teşekkürler – midan888

+0

Bu, kullanıcı tanımlı bağlantı noktaları için de çalışır – raam86

İlgili konular