문제

나는 Vagrant 상자를 (재)포장하는 데 이상한 문제에 직면하고 있으며 누군가가 나에게 어느 방향으로 봐야 할지 말해 줄 수 있기를 바랍니다.이것은 이야기입니다

  • Vagrant를 설치하고 일부 꼭두각시 매니페스트를 성공적으로 만들었으며 모두 잘 작동합니다.프로비저닝, ...
  • 그런 다음 게스트 OS(Ubuntu 11.04-amd64)에 nfs가 설치되지 않았기 때문에 실패한 NFS로 전환해야 했습니다.
  • 게스트 OS에 nfs-common을 설치했습니다(sudo apt-get install nfs-common)
  • vagrant halt
  • vagrant up
  • NFS 마운트는 여러 번의 정지/작동 명령 후에도 완벽하게 작동합니다. 만족스럽습니다!

다음 논리적 단계는 VM이 ​​파괴될 때마다 nfs-common을 다시 설치할 필요가 없도록 상자를 패키징하는 것입니다.

  • 위와 동일한 디렉토리에서 : vagrant package
  • vagrant box add ubuntuvm2 package.box
  • rm package.box
  • 줄을 바꾸다 config.vm.box Vagrantfile에서 ubuntuvm2로
  • vagrant destroy
  • vagrant up
  • 갑자기 nfs 마운트가 실패합니다. VM에 sshing할 때 nfs-common이 실제로 설치되어 있음을 확인할 수 있지만 NFS 마운트는 실패합니다. https://img.skitch.com/20120302-kwix296t44y31rxkd52pwm72f4.jpg

어떤 방향으로 솔루션을 찾기 시작해야 할지 아이디어가 있는 사람이 있나요?

OS-X Lion에서 Virtualbox 4.1.8 및 Vagrant 1.0.0을 사용하고 있습니다.

도움이 되었습니까?

해결책

나는 똑같은 문제가 있었지만 그것을 알아 냈습니다.적어도 지금은 나에게 효과가 있습니다.:)

요약:

  • /etc/exports에서 구문 오류를 확인하고 제대로 작동하는지 확인한 항목으로 /etc/exports를 다시 생성하십시오.
  • 상자의 네트워크 인터페이스가 올바르게 초기화되었는지 확인하십시오(/etc/network/interfaces를 확인하고 ifconfig -a를 실행하십시오).
  • 최소한 Debian과 Ubuntu는 영구 네트워크 장치에 대한 정보를 /etc/udev/rules.d/70-pertant-net.rules에 저장합니다.eth1이 eth2로 초기화되는 것을 보면 새 박스 인스턴스를 생성할 때 네트워크 카드의 mac 주소가 다시 생성되기 때문입니다.rm /etc/udev/rules.d/70-pertant-net.rules 상자를 다시 포장하십시오.
  • 박스를 다시 패키징할 수 없는 경우 eth1 대신 eth2를 사용하도록 /etc/network/interfaces를 업데이트하세요.

긴 형식:

  • 방랑자는 1.0.1입니다.
  • OS X는 10.7.3입니다.
  • 상자는 맞춤형 Debian Wheezy 64입니다.

상자를 다시 로드하거나 다시 생성할 때 일반적인 메시지와 함께 NFS 마운트에서 종료됩니다.

[default] Mounting NFS shared folders...
Mounting NFS shared folders failed. This is most often caused by the NFS
client software not being installed on the guest machine. Please verify
that the NFS client software is properly installed, and consult any resources
specific to the linux distro you're using for more information on how to
do this.

/etc/exports 파일 검사 NFS 관리자 내 /etc/exports에 구문 오류가 있다고 알려줍니다.

/etc/exports를 정리하고 다음 항목을 사용하여 nfs 클라이언트와 서버를 테스트합니다.

/Users/tm/git -alldirs localhost 33.33.33.10

vagrant up을 실행하면 NFS 마운트가 다시 작동합니다.

apt-get dist-upgrade 후 상자를 다시 패키징할 때 NFS 폴더가 다시 마운트되지 않는 것으로 나타났습니다.

이번에는 /etc/exports 파일에 오류가 없었습니다.Vagrant가 호스트 로컬 인터페이스를 초기화하지 않았다는 것을 발견했습니다.

/etc/network/interfaces에는 다음 내용이 포함되어 있습니다.

#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not modify.
auto eth1
iface eth1 inet static
    address 33.33.33.10
    netmask 255.255.255.0
#VAGRANT-END

ifconfig -a가 다음을 반환했습니다.

eth0      Link encap:Ethernet  HWaddr 08:00:27:3a:47:72  
      inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
      inet6 addr: fe80::a00:27ff:fe3a:4772/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:971 errors:0 dropped:0 overruns:0 frame:0
      TX packets:614 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:83951 (81.9 KiB)  TX bytes:74872 (73.1 KiB)

eth2      Link encap:Ethernet  HWaddr 08:00:27:89:f5:e3  
      BROADCAST MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

인터페이스가 올바르게 정의되지 않았습니다.eth2 NFS 마운트를 사용하도록 /etc/network/intefaces 스탠자를 업데이트한 후 다시 작동합니다.

다른 팁

이에 대한 공개 버그와 해결 방법은 다음과 같습니다.

https://github.com/mitchellh/vagrant/issues/997

  1. 편집하다 /etc/udev/rules.d/70-persistent-net.rules 이외의 인터페이스에 대한 줄을 삭제합니다. eth0
  2. vagrant package
  3. vagrant box add mypack package.box
  4. vagrant destroy
  5. ~ 안에 Vagrantfile 세트 config.vm.box 에게 mypack
  6. vagrant up

MAC OS X 10.7.5 및 CentOS 6.2 64비트에서 테스트했습니다.

업데이트: 이제 버그가 닫혔고 움직이는 하지만 사람들은 여전히 ​​문제를 겪고 있는 것 같습니다.

기존 답변 외에도 여기에 있습니다.가능한 방화벽을 잊지 마십시오.호스트 컴퓨터에서 방화벽을 실행하는 경우.오류 메시지가 이를 나타내지 않는 것 같더라도 오류는 매우 일반적입니다.

NoobProof 및/또는 IceFloor를 사용하는 경우 방화벽을 비활성화하거나 적절한 예외를 설정하세요.

Ubuntu 12 호스트/Ubuntu 12 게스트에서 다음은 담론에 도움이 되었습니다.

nfs_setting = RUBY_PLATFORM =~ /darwin/ || RUBY_PLATFORM =~ /linux/
config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", type: "nfs", nfs_udp: "true", nfs_version: "4", :nfs => nfs_setting

메모;또한 Vagrant가 결정한 호스트 IP와 Vagrant가 결정한 게스트 IP를 방화벽 예외에 추가해야 했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top