Nano Hash - криптовалюты, майнинг, программирование

`vagrant up` истекает в ожидании получения доменом IP-адреса

Похоже, это происходит только тогда, когда я использую поле generic/arch. Я пробовал несколько ящиков Ubuntu, и все работает нормально.

Хост-ОС — Manjaro.

Он зависает с выводом:

 INFO interface: info: ==> default: Waiting for domain to get an IP address...                                                                   
==> default: Waiting for domain to get an IP address...
 INFO retryable: Retryable exception raised: #<Fog::Errors::TimeoutError: The specified wait_for timeout (2 seconds) was exceeded>

libvirt/virsh версия 3.10.0 бродячая версия 2.0.1

OS 4.9.76-1-MANJARO

Бродячий файл:

Vagrant.configure("2") do |config|
  config.vm.box = "generic/arch"
end

Ниже приведено то, что я думаю, что соответствующий вывод из VAGRANT_LOG=debug vagrant up

==> default: Creating shared folders metadata...                                                                                                               
 INFO warden: Calling IN action: #<VagrantPlugins::ProviderLibvirt::Action::CreateNetworks:0x0000560dfaea3450>                                                 
 INFO create_networks: Using vagrant-libvirt at 192.168.121.0/24 as the management network nat is the mode                                                     
DEBUG create_networks: In config found network type forwarded_port options {:guest=>22, :host=>2222, :host_ip=>"127.0.0.1", :id=>"ssh", :auto_correct=>true, :p
rotocol=>"tcp"}                                                                                                                                                
DEBUG create_networks: Searching for network with options {:iface_type=>:private_network, :network_name=>"vagrant-libvirt", :ip=>"192.168.121.0", :netmask=>"25
5.255.255.0", :dhcp_enabled=>true, :forward_mode=>"nat", :guest_ipv6=>"yes", :autostart=>false}                                                                
/home/eihli/.vagrant.d/gems/2.4.3/gems/nokogiri-1.6.8.1/lib/nokogiri/xml/document.rb:44: warning: constant ::Fixnum is deprecated                              
DEBUG create_networks: looking up network with ip == 192.168.121.0                                                                                             
DEBUG create_networks: Checking that network name does not clash with ip                                                                                       
DEBUG create_networks: looking up network named vagrant-libvirt                                                                                                
DEBUG create_networks: generating name for bridge                                                                                                              
DEBUG create_networks: looking up bridge named virbr0                                                                                                          
DEBUG create_networks: looking up bridge named virbr1                                                                                                          
DEBUG create_networks: found available bridge name virbr1                                                          
DEBUG create_networks: created network                                                        
 INFO create_networks: Saving information about created network vagrant-libvirt, UUID=71c9f6dd-4b2d-48f2-a787-5a0439d2e587 to file /home/eihli/code/vagrant_te$
t/.vagrant/machines/default/libvirt/created_networks.                                                             
 INFO warden: Calling IN action: #<VagrantPlugins::ProviderLibvirt::Action::CreateNetworkInterfaces:0x0000560dfb42cae8>
 INFO create_network_interfaces: Using vagrant-libvirt at 192.168.121.0/24 as the management network nat is the mode                                           
DEBUG create_network_interfaces: In config found network type forwarded_port options {:guest=>22, :host=>2222, :host_ip=>"127.0.0.1", :id=>"ssh", :auto_correc$
=>true, :protocol=>"tcp"}                                                                                                                                      
DEBUG create_network_interfaces: Adapter not specified so found slot 0                                                                                         
DEBUG create_network_interfaces: Found network by name                                                                                                         
 INFO create_network_interfaces: Creating network interface eth0 connected to network vagrant-libvirt.                                                         
 INFO warden: Calling IN action: #<VagrantPlugins::ProviderLibvirt::Action::SetBootOrder:0x0000560dfb30af70>                                                  
 INFO warden: Calling IN action: #<VagrantPlugins::ProviderLibvirt::Action::StartDomain:0x0000560dfafc46e0>                                                    
 INFO interface: info: Starting domain.                                                                                                                        
 INFO interface: info: ==> default: Starting domain.                                                                                                           
==> default: Starting domain.                                                                                                                                  
 INFO warden: Calling IN action: #<VagrantPlugins::ProviderLibvirt::Action::WaitTillUp:0x0000560dfab82de8>
DEBUG wait_till_up: Searching for IP for MAC address: 52:54:00:62:61:1d                                     
 INFO interface: info: Waiting for domain to get an IP address...                                                        
 INFO interface: info: ==> default: Waiting for domain to get an IP address...                                                                   
==> default: Waiting for domain to get an IP address...  

Я проверил wireshark с помощью tshark -i virbr1 и не получил никакого результата. Я не был уверен, какое устройство я должен слушать, поэтому я также проверил tshark -i vnet0 и получил некоторый вывод, но ничего похожего на DHCP.

Ниже приведен вывод tshark -i vnet0

Capturing on 'vnet0'
1 0.000000000 fe80::fc54:ff:fe45:368d → ff02::fb     MDNS 201 Standard query response 0x0000 PTR, cache flush Ophelia.local AAAA, cache flush fe80::fc54:ff:fe45:368d
2 0.745989853 fe:54:00:45:36:8d → Spanning-tree-(for-bridges)_00 STP 52 Conf. TC + Root = 32768/0/52:54:00:78:b4:d1  Cost = 0  Port = 0x8002
3 1.599338528 fe80::fc54:ff:fe45:368d → ff02::2      ICMPv6 70 Router Solicitation from fe:54:00:45:36:8d
4 2.190388300 fe80::fc54:ff:fe45:368d → ff02::fb     MDNS 201 Standard query response 0x0000 PTR, cache flush Ophelia.local AAAA, cache flush fe80::fc54:ff:fe45:368d
5 2.666024617 fe:54:00:45:36:8d → Spanning-tree-(for-bridges)_00 STP 52 Conf. TC + Root = 32768/0/52:54:00:78:b4:d1  Cost = 0  Port = 0x8002
6 4.799357852 fe:54:00:45:36:8d → Spanning-tree-(for-bridges)_00 STP 52 Conf. TC + Root = 32768/0/52:54:00:78:b4:d1  Cost = 0  Port = 0x8002

Ниже приведен результат dmesg -w с момента, когда я vagrant up, до момента, когда я ctrl-c

[ 2048.355424] virbr1: port 2(vnet0) entered disabled state
[ 2048.358280] device vnet0 left promiscuous mode
[ 2048.358287] virbr1: port 2(vnet0) entered disabled state
[ 2048.578278] device virbr1-nic left promiscuous mode
[ 2048.578287] virbr1: port 1(virbr1-nic) entered disabled state
[ 2059.394512] virbr1: port 1(virbr1-nic) entered blocking state
[ 2059.394516] virbr1: port 1(virbr1-nic) entered disabled state
[ 2059.394598] device virbr1-nic entered promiscuous mode
[ 2059.532014] virbr1: port 1(virbr1-nic) entered blocking state
[ 2059.532017] virbr1: port 1(virbr1-nic) entered listening state
[ 2059.567010] virbr1: port 1(virbr1-nic) entered disabled state
[ 2059.694140] virbr1: port 2(vnet0) entered blocking state
[ 2059.694156] virbr1: port 2(vnet0) entered disabled state
[ 2059.694377] device vnet0 entered promiscuous mode
[ 2059.695080] virbr1: port 2(vnet0) entered blocking state
[ 2059.695083] virbr1: port 2(vnet0) entered listening state
[ 2061.871278] virbr1: port 2(vnet0) entered learning state
[ 2064.004553] virbr1: port 2(vnet0) entered forwarding state
[ 2064.004555] virbr1: topology change detected, propagating
[ 2065.750798] kvm [5143]: vcpu0, guest rIP: 0xffffffff86061ce6 unhandled rdmsr: 0x140
[ 2065.821598] kvm [5143]: vcpu1, guest rIP: 0xffffffff86061ce6 unhandled rdmsr: 0x140
[ 2065.861278] kvm: zapping shadow pages for mmio generation wraparound
[ 2065.863039] kvm: zapping shadow pages for mmio generation wraparound
[ 2066.017675] kvm [5143]: vcpu0, guest rIP: 0xffffffff86061ce6 unhandled rdmsr: 0x34
[ 2068.941350] virbr1: port 2(vnet0) entered disabled state
[ 2068.943507] device vnet0 left promiscuous mode
[ 2068.943511] virbr1: port 2(vnet0) entered disabled state
[ 2069.163524] device virbr1-nic left promiscuous mode
[ 2069.163532] virbr1: port 1(virbr1-nic) entered disabled state

Ниже приведен вывод ip addr show (за исключением того, что это уже сотый раз, когда я запускаю vagrant, и каждый раз увеличивается номер виртуального сетевого интерфейса.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
   valid_lft forever preferred_lft forever
inet6 ::1/128 scope host 
   valid_lft forever preferred_lft forever
2: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 3c:a9:f4:4c:7b:3c brd ff:ff:ff:ff:ff:ff
inet 10.7.74.120/18 brd 10.7.127.255 scope global dynamic noprefixroute wlp3s0
   valid_lft 599674sec preferred_lft 599674sec
inet6 fe80::3d00:e921:d2e6:d9d5/64 scope link noprefixroute 
   valid_lft forever preferred_lft forever
3: enp0s25: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 28:d2:44:17:62:46 brd ff:ff:ff:ff:ff:ff
34: virbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 52:54:00:ff:e1:a6 brd ff:ff:ff:ff:ff:ff
inet 192.168.121.1/24 brd 192.168.121.255 scope global virbr1
   valid_lft forever preferred_lft forever
35: virbr1-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr1 state DOWN group default qlen 1000
link/ether 52:54:00:ff:e1:a6 brd ff:ff:ff:ff:ff:ff
36: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master virbr1 state UNKNOWN group default qlen 1000
link/ether fe:54:00:81:4a:63 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:fe81:4a63/64 scope link 
   valid_lft forever preferred_lft forever

Ответы:


1

Поскольку вы используете поставщика libvirt, вы сможете проверить состояние виртуальной машины с помощью virt-manager.

Остальная часть ответа написана с учетом двух предположений, что моя система не так уж отличается от вашей и что я столкнулся с той же проблемой, используя vagrant-libvirt и generic/arch (v1.3.40)

Открыв виртуальную машину в virt-manager, я обнаружил, что система не может определить корневую файловую систему, а также загружается в экстренную оболочку. Это связано с тем, что initramfs-linux.img в поле generic/arch не включает необходимые модули ядра для настроек по умолчанию, которые использует libvirt-provider с QEMU/kvm.

Если вам так или иначе важно загрузить эту коробку, вы сможете запустить коробку, используя резервный образ, потому что он поставляет больше модулей. Чтобы сделать его перезагружаемым без вмешательства, вы можете запустить sudo mkinitcpio -p linux, чтобы добавить недостающие модули в гостевую. В качестве альтернативы вы также можете изменить контроллер SCSI с Hypervisor Defaults на VirtIO SCSI (например, с помощью virt-manager) на хосте.

Для более постоянного решения (ничего из вышеперечисленного не переживет vagrant destroy) не так много нужно сделать - кроме, возможно, ожидания «исправленного» выпуска коробки или исправление плагина.

пс. Вероятно, самым простым решением было бы выбрать другую коробку (например, archlinux/archlinux).

26.01.2018

2

В моем случае у меня были чрезмерно ограничительные iptables правила, запрещающие NAT, который настроен для виртуальных сетевых мостов virbr* Vagrant через libvirt.

В качестве эксперимента я отключил все правила брандмауэра перед запуском машины Vagrant, и она смогла получить IP-адрес.

04.08.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..