Z oficjalnym obrazem Vagrant Ubuntu 16.04 LTS (Xenial Xerus) (na VirtualBox) mam problemy z podstawowymi ustawieniami sieci:
Mój 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
wynik:
==> 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
Pozostawienie konfiguracji do DHCP również nie działa:
server.vm.network "private_network", type: "dhcp"
Jednocześnie, powyższe konfiguracje pracować ubuntu/trusty64
i ubuntu/wily64
i nieoficjalny gbarbieru/xenial
.
Próba wykonania polecenia /sbin/ifdown eth1 2> /dev/null
nie daje żadnych rezultatów, ponieważ interfejs ma inny schemat nazewnictwa (główny to enp0s3
).
Czy brakuje mi czegoś oczywistego, czy pudełko jest po prostu zepsute?
źródło
Mimo, że
ubuntu/xenial64
jest to oficjalne okno Ubuntu, ma pewne problemy z konfiguracją sieci i nie jest błędem Vagrant, jak wyjaśniono w odpowiedzi @Maxime.Tak więc, jak wspomniano w tym numerze, preferowane jest użycie skrzynki bento (utrzymywanej przez społeczność i Opscode Chef jako lidera projektu), co w tym przypadku byłoby
bento/ubuntu-16.04
.źródło
Problem wynika z konwencji nazewnictwa interfejsu sieciowego w nowych wersjach Ubuntu. Twoja wirtualna maszyna wirtualna nie została zainicjowana, ale nadal możesz ssh do niej (
vagrant ssh
). Tam zobaczysz, że nie ma interfejsu o nazwieeth1
(możesz użyćifconfig -a
lubip link
). W moim przypadku widzę interfejsyenp0s3
ienp0s8
.Jak wspomniano w numerze 6871
W tej chwili nie ma czystego rozwiązania.
źródło
W rzeczywistości, oprócz odpowiedzi Maximes, możesz zmienić linię poleceń GRUB w swoim pudełku, aż nowa wersja zostanie rozpowszechniona.
Po prostu przejdź do
/etc/default/grub
i ustaw odpowiednią linię naGRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
Musisz zmienić na,/etc/network/interfaces
aby odzwierciedlić prawidłowe nazwy (eth0 ...).Więcej informacji znajduje się w dokumentacji w certdepot .
źródło
Napotkałem podobny problem, jak omówiony w pierwotnym pytaniu.
Używam Vagrant 1.8.1. i korzystanie z ubuntu / trusty64 box działało dobrze, jednak kiedy próbowałem użyć ubuntu / xenial64, napotkałem ten sam problem. Komentarz w tym wątku doprowadził mnie do rozwiązania, które wydaje się działać.
Zmieniłem linię
w pliku Vagrantfile do
źródło