Рассмотрим, как изменить основной IP адрес (адрес управлена) и/или hostname сервера Proxmox VE. Это может понадобится, если вы меняете IP адресацию в вашей сети, добавляете/удаляете сетевые карты или мигрируете инфраструктуру.
Изменить основной IP адрес Proxmox
Предположим, у вас есть отдельно-стоящий хост Proxmox со статическим IP адресом, заданным при установке.
Если доступен веб интерфейс управления нодой Proxmox, изменить IP адрес можно прямо из WEB UI. Перейдите в раздел System -> Network и найдите интерфейс Linux Bridge. Откройте настройки интерфейса vmbr, задайте новый IP адрес, маску и шлюз.
Затем перейдите в раздел System -> Hosts и замените старый IP адрес.
Затем вернитесь в System —> Network и нажмите кнопку Apply Configuration, чтобы применить изменения и перезапустить сетевой интерфейс (подключение к хосту по старому IP будет потеряно).
Через несколько секунду вы сможете подключиться к WEB UI по новому IP адресу.
Также можно изменить IP адрес хоста Proxmox из консоли сервера. Для этого нужно указать новый IP адрес и настройки сети в файлах:
# nano /etc/network/interfaces
и
# nano /etc/hosts
auto vmbr0 iface vmbr0 inet dhcp
Чтобы применить новые сетевые настройки, нужно перезапустить сеть:
# systemctl restart networking
Как изменить hostname в Proxmox?
Рассмотрим, как изменить имя хоста Proxmox. В отличии от смены IP адреса, смена hostname немногим более сложная процедура.
В первую очередь задайте новое имя хоста в файлах:
# nano /etc/hosts
И
# nano /etc/hostname
Если на хосте уже созданы виртуальные машины и/или контейнеры, нужно перенести содержимое ряда директорий, в пути которых используется старое имя хоста:
- /var/lib/rrdcached/db/pve2-storage/[OLDHOSTNAME]
- /var/lib/rrdcached/db/pve2-node/[OLDHOSTNAME]
- /etc/pve/nodes/[OLDHOSTNAME]
Для удобства, можно задать старое и новое имя хоста в переменные и выполнить копирование данных следующими командами в bash:
OLD_HOSTNAME="pve1"
NEW_HOSTNAME="prox01"
mkdir /var/lib/rrdcached/db/pve2-node/$NEW_HOSTNAME
cp -p /var/lib/rrdcached/db/pve2-node/$OLD_HOSTNAME /var/lib/rrdcached/db/pve2-node/$NEW_HOSTNAME
mkdir /var/lib/rrdcached/db/pve2-storage/$NEW_HOSTNAME
cp -p /var/lib/rrdcached/db/pve2-storage/$OLD_HOSTNAME/* /var/lib/rrdcached/db/pve2-storage/$NEW_HOSTNAME
mkdir -p /etc/pve/nodes/$NEW_HOSTNAME/qemu-server
mv /etc/pve/nodes/$OLD_HOSTNAME/qemu-server/* /etc/pve/nodes/$NEW_HOSTNAME/qemu-server
# Удаляем исходные каталоги со старым hostname:
rm -Rf /etc/pve/nodes/$OLD_HOSTNAME
rm -Rf /var/lib/rrdcached/db/pve2-node/$OLD_HOSTNAME
rm -Rf /var/lib/rrdcached/db/pve2-storage/$OLD_HOSTNAME
Перезагрузите хост Proxmox:
# systemctl reboot
Заходим в Web интерфейс и проверяем работоспособность хоста Proxmox.
В моем случае после перезагрузки на хосте пропало одно из хранилищ, смонтированное в локальную директорию. При запуске ВМ с дисками на этом хранилище появилась ошибка:
TASK ERROR: storage 'datastore2' is not available on node 'prox01'
В этом случае указанное хранилище осталось привязанным к старому имени хоста в параметре nodes. Нужно указать новое имя хоста в файле:
# nano /etc/pve/storage.cfg
После этого хранилище появилась в веб интерфейсе Proxmox и я смог запустить виртуальную машины.
В том случае если хост Proxmox состоит в кластере (pve-cluster), возможно вместо прямого переименования будет проще исключить хост их кластера, переименовать его и потом вернуть. Это будет проще чем править конфиги corosync.