PROXMOX 5

Материал из megapuper
Перейти к: навигация, поиск

Устанавливаем на чистый минимальный Debian Stretch. Разбивка дисков примерно следующая:

/dev/sda1 /boot ext4 512M
[lvm] vg0 / ext4
[lvm] vg0 swap swap
[lvm] vg0 /var/lib/vz ext4


ОБЯЗАТЕЛЬНО УКАЗЫВАЕМ НУЖНЫЙ HOSTNAME, ПОТОМУ-КАК ЕСЛИ МЕНЯТЬ ЕГО В УСТАНОВЛЕННОМ PROXMOX-е БУДУТ ПРОБЛЕМЫ.


Перед началом установки редактируем /etc/hosts Указываем рабочий ip сервера вместо 127.0.0.1, например

172.16.10.1 pm01.test.ru pm01

и удаляем записи IPv6.


Добавляем репозитории с софтом Proxmox

echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg


Синхронизируем репозитории и доводим ОС до актуального состояния. При этом из репозитория proxmox установится несколько системных библиотек

apt update
apt dist-upgrade -y


Смотрим какое pve ядро есть на данный момент и ставим его вместе с pve-firmware(проприетарные дровишки для разного оборудования).

apt search pve-kernel
apt -y install pve-kernel-4.13.13-5-pve pve-firmware


Далее избавляемся от стокового ядра, чтобы сразу грузиться в ядро от proxmox.

dpkg -l | grep linux-image | awk {"print $2"}
apt -y remove --purge --auto-remove linux-image-4.9.0-5-amd64 linux-image-amd64


Обновляем конфиг загрузчика

update-grub


Перегружаемся и проверяем

uname -a
Linux pm09 4.13.13-5-pve #1 SMP PVE 4.13.13-38 (Fri, 26 Jan 2018 10:47:09 +0100) x86_64 GNU/Linux


Ставим основной софт для proxmox

apt install proxmox-ve ssh postfix ksm-control-daemon systemd-sysv


Прописываем бриджи на интерфейсах, примерно так

auto enp0s31f6
iface enp0s31f6 inet static
  address 94.130.18.241
  netmask 255.255.255.255
  gateway 94.130.18.193
  pointopoint 94.130.18.193

auto vmbr0
iface vmbr0 inet static
  address 94.130.18.241
  netmask 255.255.255.255
  bridge_ports none
  bridge_stp off
  bridge_fd 0

auto vmbr1
iface vmbr1 inet static
 address 172.16.10.1
 netmask 255.255.255.0
 bridge_ports eth1
 bridge_stp off
 bridge_fd 0


Для выхода виртуалок во внешнюю сеть включаем форвардинг

sysctl -w net.ipv4.ip_forward=1

В файрволе проксмокса должно быть правило postrouting

$IPT -t nat -A POSTROUTING -s 172.16.10.0/24 ! -d 172.16.10.0/24 -j MASQUERADE


Ребутимся и пробуем заходить https://94.130.18.241:8006 с рутовыми данными


Заводим кластер(имя НЕЛЬЗЯ сменить позже)

pvecm create CLUSTER-NAME


Проверяем статус

pvecm status

Quorum information
------------------
Date:             Thu Jun 29 13:46:19 2017
Quorum provider:  corosync_votequorum
Nodes:            1
Node ID:          0x00000001
Ring ID:          1/4
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   1
Highest expected: 1
Total votes:      1
Quorum:           1  
Flags:            Quorate 

Membership information
----------------------
    Nodeid      Votes Name
0x00000001          1 172.16.10.1 (local)


Добавляем ноду в кластер, для этого логинимся на ноду, которую добавляем. На ноде не должно быть виртуалок, чтобы не было конфликтов VM ID

pvecm add IP_ADDRESS_CLUSTER (или pvecm add IP_ADDRESS_CLUSTER --use_ssh)


Проверяем статус кластера

pvecm status

Quorum information
------------------
Date:             Thu Jun 29 13:57:38 2017
Quorum provider:  corosync_votequorum
Nodes:            3
Node ID:          0x00000001
Ring ID:          1/12
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   3
Highest expected: 3
Total votes:      3
Quorum:           2  
Flags:            Quorate 

Membership information
----------------------
    Nodeid      Votes Name
0x00000001          1 172.16.10.1 (local)
0x00000002          1 172.16.10.2
0x00000003          1 172.16.10.3


Посмотреть только список нод

pvecm nodes

Membership information
----------------------
    Nodeid      Votes Name
         1          1 pm01 (local)
         2          1 pm02
         3          1 pm03


Удаляем ноду из кластера.
Отключаем ноду перед удалением и больше НИКОГДА не включаем её в таком виде(в существующей сети кластера). Если включим ноду, кластеру хана. После выключения удаляемой ноды делаем

pvecm delnode pm03


Если всё пройдёт хорошо, увидим что нода удалилась

pvecm nodes

Membership information
----------------------
    Nodeid      Votes Name
         1          1 pm01 (local)
         2          1 pm02


Подробнее про кластер здесь https://pve.proxmox.com/wiki/Cluster_Manager


Подключение дополнительных ip-подсетей. Куплена подсеть 94.130.2.136/29 (min 94.130.2.137 max 94.130.2.142)

Конфиг на хосте

auto enp0s31f6
iface enp0s31f6 inet static
  address 94.130.18.241
  netmask 255.255.255.255
  gateway 94.130.18.193
  pointopoint 94.130.18.193

auto vmbr0
iface vmbr0 inet static
  address 94.130.18.241
  netmask 255.255.255.255
  bridge_ports none
  bridge_stp off
  bridge_fd 0
  up ip route add 94.130.2.136/32 dev vmbr0
  up ip route add 94.130.2.137/32 dev vmbr0
  up ip route add 94.130.2.138/32 dev vmbr0
  up ip route add 94.130.2.139/32 dev vmbr0
  up ip route add 94.130.2.140/32 dev vmbr0
  up ip route add 94.130.2.141/32 dev vmbr0
  up ip route add 94.130.2.142/32 dev vmbr0
  up ip route add 94.130.2.143/32 dev vmbr0


В web-интерфейсе, добавляем ip и шлюз для контейнера (94.130.2.143/32 94.130.2.241)
Конфиг в LXC контейнере получится такой

auto eth1
iface eth1 inet static
  address 94.130.2.143
  netmask 255.255.255.255
# --- BEGIN PVE ---
  post-up ip route add 94.130.18.241 dev eth1
  post-up ip route add default via 94.130.18.241 dev eth1
  pre-down ip route del default via 94.130.18.241 dev eth1
  pre-down ip route del 94.130.18.241 dev eth1
# --- END PVE ---


Если требуется подключить внешний ip к KVM-виртуалке, делаем следующее:

В web-интерфейсе добавляем два сетевых адаптера для виртуалки(НЕ ПУТАЕМ ГДЕ КАКОЙ БРИДЖ)
Kvm net1.jpg


В конфиге KVM прописываем

auto eth1
iface eth1 inet static
  address 94.130.2.139
  netmask 255.255.255.255
  up ip route add 94.130.18.241 dev eth1
  up ip route add default via 94.130.18.241 dev eth1