Недавно я установил Proxmox 6.2 на пару старых серверов и начал настраивать несколько LXC-инстансов. Я пробовал следующее, и только ArchLinux работал как ожидалось: alpine-3.10-default_20190626_amd64.tar.xz (не работает), alpine-3.11-default_20200425_amd64.tar.xz (не работает), debian-10.0-standard_10.0-1_amd64.tar.gz (не работает), debian-9.0-standard_9.7-1_amd64.tar.gz (не работает), debian-10-turnkey-gitea_16.0-1_amd64.tar.gz (не работает), archlinux-base_20200508-1_amd64.tar.gz (работает).
У меня есть Ubiquiti Edge Lite 3, сконфигурированный с dnsmasq для сопоставления имен хостов IP-адресам через DHCP. Например, если я запускаю машину с именем хоста "git", которому назначен IP-адрес 192.168.1.100, то dnsmasq будет маршрутизировать git.my.domain на 192.168.1.100.
Я выяснил, что alpine и debian образы выше используют udhcpc в качестве клиента, который, похоже, не получает имя хоста для отправки в качестве параметра/опции на DHCP-сервер. Если я вручную запускаю udhcpc renew -x hostname:git, имя хоста принимается и правильно устанавливается dnsmasq, но это потребует от меня запускать это каждый раз, когда контейнер запускается. Я пробовал редактировать некоторые конфигурации udhcpc, но не смог добиться изменений.
В итоге, я прочитал несколько мест в интернете, где сказано, что редактирование /etc/network/interfaces для включения имени хоста в качестве конфигурации установит его. Проблема заключалась в том, что файл interfaces перезаписывался Proxmox; поэтому мне пришлось создать touch /etc/network/.pve-ignore.interfaces, чтобы добавить настройку в сгенерированный файл:
Code: auto lo
iface lo inet loopback
iface lo inet6 loopback
auto eth0
iface eth0 inet dhcp
hostname $(hostname) <-- добавил эту строку
iface eth0 inet6 manual
Добавление ignore и перезагрузка контейнера решили мою проблему, и dnsmasq получил имя хоста для локального использования. Это ожидается для LXC-контейнеров? Я предпочитаю не редактировать файл interfaces вручную, ни помечать его как игнорируемый pve. Есть ли лучший способ сделать это?
У меня есть Ubiquiti Edge Lite 3, сконфигурированный с dnsmasq для сопоставления имен хостов IP-адресам через DHCP. Например, если я запускаю машину с именем хоста "git", которому назначен IP-адрес 192.168.1.100, то dnsmasq будет маршрутизировать git.my.domain на 192.168.1.100.
Я выяснил, что alpine и debian образы выше используют udhcpc в качестве клиента, который, похоже, не получает имя хоста для отправки в качестве параметра/опции на DHCP-сервер. Если я вручную запускаю udhcpc renew -x hostname:git, имя хоста принимается и правильно устанавливается dnsmasq, но это потребует от меня запускать это каждый раз, когда контейнер запускается. Я пробовал редактировать некоторые конфигурации udhcpc, но не смог добиться изменений.
В итоге, я прочитал несколько мест в интернете, где сказано, что редактирование /etc/network/interfaces для включения имени хоста в качестве конфигурации установит его. Проблема заключалась в том, что файл interfaces перезаписывался Proxmox; поэтому мне пришлось создать touch /etc/network/.pve-ignore.interfaces, чтобы добавить настройку в сгенерированный файл:
Code: auto lo
iface lo inet loopback
iface lo inet6 loopback
auto eth0
iface eth0 inet dhcp
hostname $(hostname) <-- добавил эту строку
iface eth0 inet6 manual
Добавление ignore и перезагрузка контейнера решили мою проблему, и dnsmasq получил имя хоста для локального использования. Это ожидается для LXC-контейнеров? Я предпочитаю не редактировать файл interfaces вручную, ни помечать его как игнорируемый pve. Есть ли лучший способ сделать это?
