Версия программы: ================= cloud-init-config-network-manager-22.3.4-alt2 cloud-init-22.3.4-alt2 Шаги, приводящие к ошибке: ========================== 1) Развернуть proxmox 2) Создать виртуальную машину 3) Добавить к виртуальной машине CloudInit Dirve в Hardware 4) На виртуальной машине выполнить следующие действия: 4.1) # apt-get install -y cloud-init 4.2) # systemctl enable cloud-init cloud-config 4.3) # rm -f /etc/machine-id /var/lib/dbus/machine-id && touch /etc/machine-id && ln -s /etc/machine-id /var/lib/dbus/machine-id && poweroff 5) В proxmox для виртуальной машины добавить: User - <Любое имя>, Password - <Любой пароль> и запустить систему. 6) Выполнить для получения 6.1) Ip адреса (взять ipv4 для доступного интерфейса): # ip -c a 6.2) # route -n | grep 'UG[ \t]' | awk '{print $2}' 7) # apt-get install -y cloud-init-config-network-manager 8) В настройках виртуальной машины выбрать Cloud-Init -> IP Config и указать следующее: IPv4/CIDR - ipv4 из шага 6.1 Gateway(IPv4) - ipv4 из шага 6.2 После отключить машину (Stop) и включить ее (Start). 9) Зайти под созданным пользователем CloudInit Результат: ========== В системе существует либо 2 Ethernet соединения: eth0 и cloud-init eth0, либо не одного. При 2 соединениях, если выбрано eth0, то у виртуальной машины отсутствует ipv4, указанный на шаге 8. А если выбрать cloud-init eth0, то IPv4 у нее появляется. При выполнении # nmcli connection show в случае двух соединений: NAME UUID TYPE DEVICE eth0 4f5f4004-d2af-41f8-ae2c-91514841f0c8 ethernet eth0 cloud-init eth0 1dd9a779-d327-56e1-8454-c65e2556c12c ethernet -- System ens19 53f9d315-f525-eb7f-86ad-be8e1b9cf86f ethernet -- При их отсутствии будет только System ens19 в выводе этой команды. Ожидаемый результат: ==================== Существует только одно соединение, которому выдан IPv4, указанный на шаге 8. Дополнительно: ============== Ошибка также воспроизводится в P10 на версии cloud-init-22.2.2-alt2
Created attachment 11927 [details] Пример без соединений
Created attachment 11928 [details] Пример с соединениями
Cloud-init используется для настройки виртуальных машин созданных из специального образа. Поэтому предполагается, что все пакеты будут установлены до первого запуска. Попробуйте установить пакет cloud-init-config-network-manager вместе с cloud-init.
(Ответ для obirvalger@altlinux.org на комментарий #3) > Cloud-init используется для настройки виртуальных машин созданных из > специального образа. Поэтому предполагается, что все пакеты будут > установлены до первого запуска. Попробуйте установить пакет > cloud-init-config-network-manager вместе с cloud-init. При установленном пакете cloud-init-config-network-manager вместе с cloud-init баг воспроизводится. Отображается 2 ethernet соединения
Created attachment 12398 [details] screen
(Ответ для Alexandr Shashkin на комментарий #0) Необходимо устранить конфликт служб, потому как поведение не исправлено. Вероятно, что проблема именно в данном конфликте. Версии: cloud-init 22.3.4-alt3 cloud-init-24.2-alt2 В качестве преднастроек выполнено: проверено - в файле /etc/resolvconf.conf нет строк name_servers=127.0.0.1. В веб-альтераторе стоит по умолчанию systemd-network (как, например, на P10 Server 10.2 x86-64) или Network Manager (etcnet). Вручную было изменено на Network Manager (native) для работы с Cloud-Init -> Ок -> Применить -> reboot Проверить после перезагрузки, что в веб-альтераторе стоит Network Manager (native) -> стоит. Установить пакеты cloud-init-config-network-manager вместе с cloud-init, как указано здесь https://bugzilla.altlinux.org/show_bug.cgi?id=44404#c3: # apt-get install cloud-init-config-network-manager cloud-init Далее по шагам настроить, как указано было в баге, начиная с 4.2: > 4.2) # systemctl enable cloud-init cloud-config > 4.3) # rm -f /etc/machine-id /var/lib/dbus/machine-id && touch > /etc/machine-id && ln -s /etc/machine-id /var/lib/dbus/machine-id && poweroff > 5) В proxmox для виртуальной машины добавить: User - <Любое имя>, Password - > <Любой пароль> и запустить систему. > 6) Выполнить для получения > 6.1) Ip адреса (взять ipv4 для доступного интерфейса): # ip -c a > 6.2) # route -n | grep 'UG[ \t]' | awk '{print $2}' > 7) # apt-get install -y cloud-init-config-network-manager > 8) В настройках виртуальной машины выбрать Cloud-Init -> IP Config и указать > следующее: > IPv4/CIDR - ipv4 из шага 6.1 > Gateway(IPv4) - ipv4 из шага 6.2 > После отключить машину (Stop) и включить ее (Start). > 9) Зайти под созданным пользователем CloudInit > Проверить количество соединений: # nmcli connection show > Результат: Воспроизводится ошибка: NAME UUID TYPE DEVICE cloud-init eth0 1dd9a779-d327-56e1-8454-c65e2556c12c ethernet eth0 lo cbeba78a-553e-45db-9f63-4f28266f1a91 loopback lo Native ens19 7fc35b0b-ae47-4760-aac9-7bdf99ef88c1 ethernet -- При просмотре в трее cloud-init eth0 и второе ethernet-соединение. Дополнительное исследование: Если установить cloud-init-config-etcnet и перезагрузиться: # apt-get install -y cloud-init-config-etcnet && reboot то в acc остаётся выставленным Network Manager (native). При установке cloud-init-config-etcnet происходит замена пакетов (удаляется cloud-init-config-network-manager и устанавливается cloud-init-config-etcnet). Следующие пакеты будут УДАЛЕНЫ: cloud-init-config-network-manager Следующие НОВЫЕ пакеты будут установлены: cloud-init-config-etcnet