การตั้งค่าเครือข่ายล้มเหลวสำหรับกล่อง ubuntu / xenial64 Vagrant


15

ด้วยภาพอย่างเป็นทางการของ Ubuntu 16.04 LTS (Xenial Xerus) Vagrant (บน VirtualBox) ฉันมีปัญหากับการตั้งค่าเครือข่ายพื้นฐาน:

ของฉันVagrantfile:

Vagrant.configure(2) do |config|

  config.vm.box = 'ubuntu/xenial64'

  config.vm.define "xenial" do |server|
    server.vm.network "private_network", ip: "192.168.10.10"
  end
end

vagrant up ผลลัพธ์:

==> xenial: Configuring and enabling network interfaces...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

/sbin/ifdown eth1 2> /dev/null

Stdout from the command:



Stderr from the command:

sudo: unable to resolve host ubuntu-xenial
mesg: ttyname failed: Inappropriate ioctl for device

การปล่อยให้การกำหนดค่ากับ DHCP ไม่ทำงาน:

server.vm.network "private_network", type: "dhcp"

ในขณะเดียวกันการกำหนดค่าดังกล่าวข้างต้นทำงานให้ubuntu/trusty64และและไม่เป็นทางการubuntu/wily64gbarbieru/xenial

การลองคำสั่ง/sbin/ifdown eth1 2> /dev/nullไม่ให้ผลลัพธ์เนื่องจากอินเตอร์เฟสมีรูปแบบการตั้งชื่อที่ต่างกัน (อันที่สำคัญคือenp0s3)

ฉันขาดสิ่งที่เห็นได้ชัดที่นี่หรือกล่องเพิ่งพังหรือไม่

คำตอบ:


15

ปัญหาดูเหมือนว่าจะได้รับการแก้ไขในรุ่นต่อไปของคนจรจัด: https://github.com/mitchellh/vagrant/issues/7155

ฉันลองกล่องอื่นจาก Jeff Geerling https://twitter.com/geerlingguy/status/723571293174427648?lang=frและมันทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน Jeff ได้ทำงานที่ยอดเยี่ยมมากมายกับ Vagrant / Ansible ดังนั้นฉันคิดว่ามันเป็นทางออกที่ดีที่สุดก่อนที่จะปล่อย Vagrant เวอร์ชั่นถัดไป


ฉันมีปัญหาเดียวกันกับกล่อง Ubuntu 16.04 อย่างเป็นทางการ หลังจากลองผิดลองถูกหลายชั่วโมงฉันก็ลองใช้กล่องของ geerlingguy และมันก็ใช้งานได้อย่างมีเสน่ห์ กล่อง Ubuntu 14.04 LTS อย่างเป็นทางการก็ใช้ได้เช่นกัน
Jabba

2

แม้ubuntu/xenial64จะเป็นกล่อง Ubuntu อย่างเป็นทางการ แต่ก็มีปัญหาบางอย่างเกี่ยวกับการกำหนดค่าเครือข่ายและไม่ใช่ปัญหา Vagrant ดังที่อธิบายไว้ในคำตอบของ @Maxime
ดังนั้นในขณะที่ปัญหาได้รับการกล่าวถึงเป็นที่ต้องการใช้เบนโตะกล่อง (mantained โดยชุมชนและมี Opscode เชฟเป็นผู้นำของโครงการ) bento/ubuntu-16.04ซึ่งกรณีนี้จะเป็น


กล่อง "bento" ได้รับการแนะนำโดยผู้ดูแลของ Vagrant: github.com/mitchellh/vagrant/issues/7155#issuecomment-228568200
joonas.fi

1

ปัญหานี้เกิดจากการตั้งชื่ออินเตอร์เฟซเครือข่ายใน Ubuntu รุ่นใหม่ Vagrant VM ของคุณไม่ได้รับการจัดเตรียม แต่คุณยังสามารถ ssh ได้ ( vagrant ssh) ที่นั่นคุณจะเห็นว่าไม่มีส่วนต่อประสานชื่อeth1(คุณสามารถใช้ifconfig -aหรือip link) ในกรณีของฉันฉันเห็นอินเตอร์เฟซและenp0s3enp0s8

ตามที่กล่าวไว้ในปัญหา 6871

... เราต้องการวิธีในการตรวจหาอินเตอร์เฟสแทนการกำหนดค่าคงที่ ...

... หรือโน้มน้าวอูบุนตูเพื่อเปลี่ยนภาพคลาวด์

ในขณะนี้ไม่มีวิธีแก้ปัญหาที่สะอาด


1

ที่จริงแล้วนอกเหนือจากคำตอบ Maximes คุณสามารถเปลี่ยน commandline GRUB ในกล่องของคุณจนกว่าจะมีการเผยแพร่เวอร์ชันใหม่

เพียงไปที่/etc/default/grubและตั้งค่าบรรทัดที่เหมาะสมเป็นGRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0" คุณจะต้องเปลี่ยน/etc/network/interfacesเพื่อสะท้อนถึงชื่อที่ถูกต้อง (eth0 ... )

ดูdocumentaion ใน certdepot สำหรับข้อมูลเพิ่มเติม


1

ฉันพบปัญหาที่คล้ายกันดังที่กล่าวไว้ในคำถามเดิม

ฉันใช้ Vagrant 1.8.1 และการใช้กล่อง ubuntu / trusty64 ก็ใช้งานได้ดี แต่เมื่อฉันพยายามใช้กล่อง ubuntu / xenial64 ฉันก็ประสบปัญหาเดียวกัน ความคิดเห็นในหัวข้อปัญหานี้นำฉันไปสู่โซลูชันซึ่งดูเหมือนว่าจะได้ผล

ฉันเปลี่ยนสาย

config.vm.network "private_network", ip: "192.168.33.10"

ใน Vagrantfile ถึง

config.vm.network "private_network", ip: "192.168.33.10", auto_config: false
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.