2012-03-14 32 views
8

Tôi đang đối mặt với một vấn đề kỳ lạ với (lại) đóng gói một hộp Vagrant và hy vọng rằng có thể ai đó có thể cho tôi biết theo hướng nào. Đây là câu chuyệnNFS Fails sau khi đóng gói một hộp Vagrant

  • Tôi đã cài đặt Vagrant và đã tạo thành công một số biểu hiện rối và tất cả hoạt động tốt, lang thang lên ... cung, ...
  • Sau đó, tôi cần thiết để chuyển sang NFS mà thất bại vì nfs không được cài đặt trên hệ điều hành khách của tôi (Ubuntu 11.04-amd64)
  • tôi đã cài đặt nfs-phổ biến trên các hệ điều hành khách (sudo apt-get install nfs-common)
  • vagrant halt
  • vagrant up
  • Và NFS gắn kết hoạt động hoàn hảo, ngay cả sau khi một số lệnh tạm dừng/lên, tôi hạnh phúc!

Bước hợp lý tiếp theo sẽ là đóng gói hộp nên tôi không cần phải cài đặt lại nfs-common mỗi khi VM bị phá hủy.

  • Trong thư mục tương tự như trên: vagrant package
  • vagrant box add ubuntuvm2 package.box
  • rm package.box
  • thay đổi dòng config.vm.box trong Vagrantfile để ubuntuvm2
  • vagrant destroy
  • vagrant up
  • và tất cả của một đột ngột các nfs mount thất bại, khi sshing vào th e VM i có thể xác nhận rằng nfs-common thực sự được cài đặt nhưng NFS mount chỉ thất bại: https://img.skitch.com/20120302-kwix296t44y31rxkd52pwm72f4.jpg

Bất cứ ai có ý tưởng về hướng nào để bắt đầu tìm giải pháp?

Tôi đang sử dụng Virtualbox 4.1.8 và Vagrant 1.0.0 trên OS-X Lion

+0

Tôi gặp vấn đề tương tự. Chưa có giải pháp. Làm việc trên nó khi chúng ta nói. – thomasmalt

+0

Vui vì tôi không phải là người duy nhất, nếu tôi có thể là bất kỳ người thừa nhận nào, chỉ cần gimme hét lên @chrisramakers trên twitter :) – ChrisR

Trả lời

13

Tôi gặp vấn đề tương tự nhưng tôi đã tìm ra. Ít nhất nó hoạt động cho tôi bây giờ. :)

TL; DR:

  • Kiểm tra/etc/exports cho các lỗi cú pháp và tạo lại/etc/exports với một mục bạn chắc chắn công trình.
  • Xác minh giao diện mạng trên hộp được khởi tạo đúng (kiểm tra/etc/network/interfaces và chạy ifconfig -a).
  • Ít nhất Debian và Ubuntu lưu trữ thông tin về thiết bị mạng liên tục trong /etc/udev/rules.d/70-persistent-net.rules. Nếu bạn thấy rằng eth1 được khởi tạo dưới dạng eth2 thì đó là vì địa chỉ mac của card mạng được tạo lại khi bạn tạo một cá thể hộp mới. rm /etc/udev/rules.d/70-persistent-net.rules và đóng gói lại hộp của bạn.
  • Nếu bạn không thể đóng gói lại của bạn cập nhật hộp/etc/network/interfaces để sử dụng eth2 instad của eth1

hình thức Long:

  • Vagrant là 1.0.1
  • OS X là 10.7.3
  • Hộp là tùy chỉnh Debian Wheezy 64.

Khi tải lại hoặc tạo lại hộp nó sẽ chết trên NFS gắn kết với thông điệp điển hình.

[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. 

Kiểm tra tệp/etc/exports với NFS Manager nó cho tôi biết/etc/exports chứa lỗi cú pháp.

tôi dọn dẹp/etc/exports và thử nghiệm nfs client và server với cụm từ này:

/Users/tm/git -alldirs localhost 33.33.33.10 

Khi chạy lang thang lên NFS gắn hoạt động trở lại.

Khi đóng gói lại hộp sau khi nhận bản nâng cấp apt-get, tôi nhận thấy các thư mục NFS sẽ không gắn kết lại.

Lần này không có lỗi trong tệp/etc/exports. Tôi phát hiện ra Vagrant đã không khởi tạo giao diện cục bộ của máy chủ.

/etc/network/interfaces chứa này:

#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 trở này:

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) 

Giao diện không được định nghĩa một cách chính xác. Sau khi cập nhật/etc/network/intanaces stanza để sử dụng eth2 NFS gắn đang hoạt động trở lại.

+0

Cú pháp trong/etc/exports dường như ổn với tôi, nhưng sau khi kiểm tra hộp thực sự các thiết bị ethernet trộn lẫn (vagrant sử dụng eth1 trong khi chỉ eth0 và eth2 tồn tại). Sau khi sửa chữa tất cả mọi thứ này làm việc tốt một lần nữa! – ChrisR

+0

Điều này nên được báo cáo như là một lỗi trong vagrant trên github mặc dù. Loại gây phiền nhiễu :) – thomasmalt

+0

Việc sửa chữa làm việc tuyệt vời cho tôi, ngoại trừ khi tôi muốn cung cấp sau đó (cung cấp vagrant), nó mang lại cho tôi những rắc rối. Cũng trên Ubuntu11.04 btw. – Dieter

4

Dưới đây là một lỗi mở về vấn đề này và một giải pháp:

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

  1. chỉnh sửa /etc/udev/rules.d/70-persistent-net.rules và xóa dòng cho các giao diện khác hơn eth0
  2. vagrant package
  3. vagrant box add mypack package.box
  4. vagrant destroy
  5. Trong Vagrantfile thiết config.vm.box để mypack
  6. vagrant up

tôi thử nghiệm này trên MAC OS X 10.7.5 và CentOS 6.2 64bit

UPDATE: lỗi hiện đang đóng cửa và moved nhưng có vẻ như mọi người vẫn gặp vấn đề.

0

Ngoài câu trả lời hiện có tại đây: Đừng quên tường lửa có thể có. Nếu bạn chạy tường lửa trên máy chủ của mình. Lỗi là rất chung chung, mặc dù thông báo lỗi dường như không chỉ ra điều đó.

Nếu bạn sử dụng NoobProof và/hoặc IceFloor, hãy tắt tường lửa hoặc thực hiện các ngoại lệ thích hợp.

0

trên Ubuntu 12 host/Ubuntu 12 khách sau đây làm việc cho tôi với bài giảng

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 

lưu ý; Tôi cũng đã phải thêm IP máy chủ được xác định bởi IP lang thang và khách được xác định bởi Vagrant đối với ngoại lệ tường lửa

Các vấn đề liên quan