Установка и настройка Proxmox VE

  • Михаил
  • 12 мин. на прочтение
  • 156
  • 20 Jun 2022
  • 20 Jun 2022

В данной инструкции мы пошагово разберем способы установки Proxmox VE, базовую настройку и создание виртуальной машины. Proxmox основан на Debian — поэтому установку будем выполнять на данный дистрибутив Linux. В данной инструкции работа ведется на Proxmox версии 6.

Системные требования

Требования разделены на минимальные и рекомендованные:

 МинимальныеРекомендованные
Процессор64bit с поддержкой технологии виртуализации Intel VT или AMD-V
Память1 Гб2 Гб для системы + для виртуальных машин.
Дополнительно, если используется хранилище Ceph или ZFS, 1 Гб на наждый ТБ данных.
НакопительHDDSSD или NVMe
СетьСетевой адаптерМинимум, 2 сетевых адаптера на 10 Гбит/сек.

Поддержка виртуализации Intel VT или AMD-V может быть отключена на материнской плате. Для проверки заходим в БИОС - находим раздел настройки процессора (как правило, в пункте меню Advanced) - проверяем, что технология виртуализации (Intel VT, AMD-V, Virtualization Technology, VMX) включена (Enabled). Если мы хотим протестировать платформу и устанавливаем ее на виртуальную машину, то в ее настройках включаем поддержку технологии виртуализации. Например, в VMware ESX 6 в настройке виртуальной машины на вкладке Virtual Hardware раскрываем CPU и ставим галочку Expose hardware assisted virtualization to the guest OS:

Включение виртуализации для виртуальной машины в VMware ESX 6

Установка

Есть два варианта установки Proxmox VE — использовать готовый образ или установка на Debian. Мы рассмотрим оба.

Установка готового образа ISO

1. Переходим на страницу загрузки Proxmox официального сайта. Загружаем дистрибутив, например, Proxmox VE 6.1:

Загрузка дистрибутива Proxmox

2. Если установка выполняется на виртуальную машину, монтируем образ. Если нет — создаем установочную флешку, например, с помощью WinSetupFromUsb или загрузочный диск с помощью InfraRecorder.

3. Загружаем сервер с установочного ISO — мы увидим окно приветствия Proxmox — выбираем пункт меню Install Proxmox VE:

Welcome to Proxmox VE

4. Принимаем лицензионное соглашения, кликнув по I agree.

5. Выбираем диск, на который будет установлена система:

Выбираем диск, на который будет установлен Proxmox

* при необходимости, кликаем по Options и задаем настройки файловой системы и размера раздела.

6. Пишем страну, временную зону, язык раскладки клавиатуры по умолчанию:

Пишем страну, временную зону, язык раскладки клавиатуры по умолчанию

7. Вводим дважды пароль, который будет использоваться для пользователя root:

Новый пароль для root

8. Прописываем сетевые настройки:

Сетевые настройки Proxmox

* где:

  • Management Interface: сетевой интерфейс для управления сервером виртуальных машин.
  • Hostname (FQDN): имя хоста для сервера.
  • IP Address: IP-адрес нашего сервера.
  • Netmask: маска подсети для сервера.
  • Gateway: шлюз по умолчанию.
  • DNS Server: сервер DNS.

9. В окне «Summary» проверяем введенные данные и кликаем по Install. Начнется процесс установки, который займет не более 10 минут.

10. После установки мы должны увидеть «Installation Successful» — перезагружаем сервер, кликнув по кнопке Reboot.

После переходим к проверке установки.

Установка на Debian

Если мы решили установить Proxmox на уже установленный Debian, выполняем следующую инструкцию.

При установке среды виртуализации меняется ядро Linux. Это может привести к потери работоспособности уже установленных сервисов. Таким образом, установку Proxmox следует выполнять на чистый сервер, а не тот, который уже используется для каких-либо задач.

1. Имя сервера должно разрешаться по его IP-адресу. Для этого либо добавляем А-запись в DNS, либо настраиваем на сервере файл hosts:

nano /etc/hosts

... и добавляем:

192.168.1.55 proxmox.dmosk.local   proxmox

* где 192.168.1.55 — IP-адрес нашего сервера; proxmox — имя сервера; dmosk.local — наш домен, если используется.

2. Добавляем репозитории, которые будем устанавливать для установки  Proxmox PE и дополнительных компонентов:

nano /etc/apt/sources.list

deb http://mirror.yandex.ru/debian/ buster main non-free contrib
deb-src http://mirror.yandex.ru/debian/ buster main non-free contrib
deb http://download.proxmox.com/debian/pve buster pve-no-subscription

Чтобы мы могли работать с репозиторием proxmox добавляем в систему цифровую подпись:

wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg

Обновляем список пакетов:

apt-get update

3. Устанавливаем Proxmox PE и компоненты:

apt-get install proxmox-ve open-iscsi

* где proxmox-ve — собственно, сам гипервизор; open-iscsi — iSCSI-клиент для подключения iSCSI-target-ов.

4. Перезагружаем сервер:

systemctl reboot

Проверка установки

В браузере открываем панель управления системой виртуализации по адресу https://<IP-адрес сервера>:8006. В открывшемся окне выбираем язык, вводим логин и пароль от пользователя root:

Входим в панель управления Proxmox

Должно открыться окно управления.

Начальная настройка

Чтобы начать использовать Proxmox и создать первую виртуальную машину, внесем небольшие настройки и подготовим гипервизор к работе.

1. Загрузка образов

Кликаем по Датацентр - и дважды по storage:

Открываем хранилище Proxmox

* мы можем создать отдельное хранилище для образов ISO. Для этого переходим в раздел Датацентр - Хранилище - Создать - Каталог.

Переходим в раздел Содержимое и кликаем по Загрузить:

Кликаем по Загрузить в Proxmox

В открывшемся окне выбираем ISO-образ системы, который будем устанавливать в качестве гостевой и кликаем по Загрузить. Ждем окончания копирования файла на сервер.

2. Создание сети для виртуальных машин

Мы рассмотрим примеры создания 2-х режимов сети — Bridge и NAT.

Независимо от способа установки Proxmox, необходимо подключиться к хосту по SSH и установить пакет ifupdown2 командой:

apt-get install ifupdown2

* ifupdown2 — утилита для конфигурации сетевого интерфейса (по сути, аналог ifupdown, написанный на языке Python).

... в противном случае, при попытке применить сетевые настройки мы получим ошибку you need ifupdown2 to reload networking (500).

Bridge

Сеть, работающая в данном режиме позволяет виртуальной машине видеть локальную сеть, как будто это отдельно стоящее устройство. Данный режим лучше всего подойдет для серверов, стоящих в локальной сети компании.

Работать с режимом Bridge нужно очень осторожно. Любое неправильное действие и удаленный доступ к серверу будет потерян. Если работы ведутся на удаленном сервере, рекомендуется сначала потренироваться на какой-нибудь локальной машине.

Также стоит отметить, что при установке PVE из установочного ISO-образа, один Bridge уже будет создан.

Для создания бриджа в панели управления кликаем по нашему серверу Proxmox - переходим в раздел Система - Сеть - обратите внимание, чтобы в системе не было bridge-интерфейсов:

Переход к созданию сетевого интерфейса в Proxmox

... иначе, создавать его не обязательно.

Открываем настройки сетевого интерфейса, через который будет работать наш мост и удаляем шлюз:

Удаляем шлюз из настроек сетевого адаптера

* если мы не сделаем этого, то при настройке Bridge мы получим ошибку Parameter verification failed. (400). gateway: Default gateway already exists on interface 'ens160'.

Нажимаем Создать и выбираем Linux Bridge:

Создание нового Bridge интерфейса

В открывшемся окне заполняем поля IPv4/CIDR, Шлюз (IPv4), Порты сетевого моста:

Создание нового Bridge интерфейса

* в данном примере мы задаем IP-адрес, на котором будет работать Proxmox (чтобы ничего не перепутать, можно задать IP-адрес физического интерфейса, который будет задействован под Bridge); маска указывается в нотации CIDR и в нашем примере это 24 или 255.255.255.0; в качестве физического интерфейса наш bridge будет использовать ens160.

... нажимаем Создать

Кликаем по Apply Configuration, чтобы применить сетевые настройки:

Создание нового Bridge интерфейса

Подтверждаем действия.

NAT

Данный режим сети активно применяется в случае аренды сервера, где количество IP-адресов лимитировано. В данном случае, все виртуальные машины будут находисться за NAT, в качестве которого выступает сам Proxmox.

Сам интерфейс мы делаем из панели управления. Но чтобы виртуальные машины могли выходить в Интернет через сеть NAT, необходимо на самом хосте включить редирект и маскарадинг.

Создание нового bridge-интерфеса

Итак, кликаем по нашему серверу Proxmox - переходим в раздел Система - Сеть - нажимаем Создать и выбираем Linux Bridge:

Создание нового Bridge интерфейса для NAT

Оставляем имя vmbr1 или пишем любое другое, прописываем IP-адрес с маской сети, в которой будут находиться серверы за NAT:

Настройки при создании Bridge интерфейса для NAT

Нажимаем Создать. Применяем настройки:

Применяем сетевые настройки

Сеть настроена.

Настройка ядра и брандмауэра

Подключаемся к серверу по SSH. Открываем на редактирование файл настройки ядра:

nano /etc/sysctl.d/99-sysctl.conf

... и добавляем разрешение на редирект:

net.ipv4.ip_forward=1

После применяем настройки:

sysctl -p /etc/sysctl.d/99-sysctl.conf

Добавляем правило в брандмауэр:

iptables -t nat -A POSTROUTING -s '192.168.122.0/24' -o vmbr0 -j MASQUERADE

* в данном примере мы создали правило для маскарадинга всех пакетов из подсети 192.168.122.0/24 и для исходящего интерфейса vmbr0. Обратите внимание, что если у нас будет другая подсеть и исходящий интерфейс для сети Интернет, то нужно будет задать другие значения.

Ставим утилиту для сохранения правил iptables:

apt-get install iptables-persistent

... и сохраняем правила в процессе установки или командой:

netfilter-persistent save

Наш NAT настроен.

Сеть между виртуалками

Данная сеть — частный случай NAT без выхода в Интернет. Мы должны создать бридж с отдельной подсетью без шлюза. При добавлении виртуальным машинам данного сетевого адаптера мы сможем настроить их взаимодействие по внутренней сети.

Создаем бридж, как делали это ранее:

Создание нового Bridge интерфейса для внутреннего трафика

Настраиваем новый интерфейс - задаем имя или оставляем тот, что предложит система, а также указываем IP-адрес:

Создание нового Bridge интерфейса для внутреннего трафика

Создаем интерфейс. Готово — при создании или редактировании виртуалок, мы можем указывать с качестве интерфейса созданный бридж (в данном примере, vmbr2) для изоляции их в отдельную подсеть 192.168.150.0/24.

Создание виртуальной машины

Базовая настройка закончена — можно опробовать наш гипервизор в деле. 

В правой верхней части панели управления кликаем по Создать VM:

Кликаем по Создать VM

В открывшемся окне снизу сразу ставим галочку Расширенный:

Ставим галочку расширенный

Задаем имя виртуальной машине и ставим галочку Запуск при загрузке (если хотим, чтобы виртуалка запускалась автоматически с сервером PVE):

Задаем имя и включаем запуск виртуальной машины при запуске сервера PVE

* в данном примере мы задали имя FS. При желании, также можно изменить VM ID, но он проставляется автоматически и имеет правильное значение.

Выбираем загруженный нами ISO-образ, с которого будем ставить операционную систему, задаем тип гостевой операционной системы и ее версию:

Выбираем образ, с которого должна загрузиться виртуалка

* в данном примере мы будем устанавливать Linux Ubuntu. Среди списка операционных систем также доступны Microsoft Windows, Solaris и Other.

На вкладке Система можно оставить все значения по умолчанию:

Системные настройки можно не трогать

* в некоторых случаях, необходимо выбрать другую видеокарту (при установке систем с GUI), а также особый вариант БИОС.

Задаем размер жесткого диска:

Задаем размер для жесткого диска

* 16 Гб для Ubuntu достаточно, однако, для наших задач расчет должен быть индивидуальным для каждой создаваемой виртуальной машины.

Мы можем задать количество процессоров и ядер:

Задаем количество процессоров и ядер для ВМ

* в данном примере мы создаем виртуалку с 2 процессорами, каждый из который с 2 ядрами, итого, 4. Для ненагруженных систем можно оставить значение по умолчанию.

Выделяем память:

Укажем объем оперативной памяти

* наша Ubuntu будет работать с 2 Гб оперативной памяти.

Выбираем созданный нами бридж — либо для получения прямого адреса из сети, либо для NAT:

Выбираем сетевой адаптер, через который будет работать сеть виртуальной машины

* в данном примере, мы указали vmbr0 для подключения к сети напрямую.

Ставим галочку, чтобы виртуальная машина сразу запустилась после создания:

Разрешив запуск машины после ее создания

... и нажимаем Готово. Ждем окончания процесса и переходим к консоли:

Подключаемся к консоли сервера

Мы должны увидеть загрузку с ISO-образа.

Настройка виртуальной машины

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

Полезные настройки

Для начала, переходим к виртуальной машине - Параметры:

Переходим к параметрам виртуальной машины

На мой взгляд, чаще всего могут понадобиться следующие настройки:

  • Имя — имя виртуальной машины.
  • Запуск при загрузке — для серверов данный параметр должен быть активирован.
  • Порядок загрузки — позволяет определить, с какого устройства должна запуститься виртуалка в первую очередь.

Для изменения параметра, просто кликаем по нему дважды, меняем значение и нажимаем OK.

Добавление дискового накопителя

Переходим в подраздел Оборудование - кликаем по Добавить и выбираем Жесткий диск:

Добавляем жесткий диск

В открывшемся окне задаем размер диска и нажимаем OK.

Для увеличения размера имеющегося диска устанавливаем на него курсов и кликаем по Изменить размер диска:

Увеличиваем размер диска

В открывшемся окне задаем объем, на который нужно увеличить дисковое пространство.

Добавление сетевого адаптера

Переходим в подраздел Оборудование - кликаем по Добавить и выбираем Сетевое устройство:

Добавляем сетевой адаптер

Как при создании ВМ, выбираем тип сетевого адаптера (бридж или нат) и нажимаем Добавить.

Установка гостевого агента

Обязательная процедура для повышения производительности и возможностей работы с виртуальной машиной. Настройка выполняется как на гипервизоре, так и в самой виртуальной машине. Рассмотрим пример установки агента на базе системы Linux.

В гипервизоре переходим в Параметры, находим пункт QEMU Guest Agent и кликаем по нему:

Кликаем по пункту QEMU Guest Agent

Ставим галочку Use QEMU Guest Agent и нажимаем OK:

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

Для применения настройки нужно выключить и включить виртуальную машину.

Теперь подключаемся к виртуальной машине и устанавливаем утилиту. В зависимости от типа Linux команды будут отличаться.

а) DEB-based:

apt install qemu-guest-agent

б) RPM-based:

yum install qemu-guest-agent

Установка завершена.

Для запуска сервиса выполняем:

systemctl enable qemu-guest-agent --now

В сводке виртуальной машины мы теперь можем увидеть информацию об IP-адресе, которая получена при помощи гостевого агента.

Подробнее процесс описан на странице https://pve.proxmox.com/wiki/Qemu-guest-agent.

Удаление виртуальной машины

Для удаления виртуальной машины, сначала ее отключаем — это можно сделать из операционной системы или из панели управления, нажав на стрелку вниз рядом с Выключить - Остановка:

Выключаем виртуальную машину

После кликаем по Дополнительно - Удалить:

Удаление виртуальной машины

В открывшемся окне мы должны подтвердить свои намерения удалить виртуальную машину, вписав ее идентификатор:

Добавляем сетевой адаптер

* если мы поставим галочку Purge, то виртуальная машина будет удалена полностью вместе с виртуальным диском.

Кликаем по Удалить — готово.

Тюнинг сервера PVE

Внесем несколько изменений, которые сделают работу с Proxmox VE удобнее.

Отключение предупреждения об отсутствии подписки

Каждый раз при заходе в панель управления мы будем видеть такое предупреждение:

Предупреждение об отсутствии подписки

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

  1. Отключим платный репозиторий для получения пакетов proxmox.
  2. Отредактируем файл js для отключения данного сообщения.

И так, в SSH открываем на редактирование репозиторий proxmox:

nano /etc/apt/sources.list.d/pve-enterprise.list

Приводим его к виду:

#deb https://enterprise.proxmox.com/debian/pve buster pve-enterprise
deb http://download.proxmox.com/debian/pve stretch pve-no-subscription

* мы закомментировали репозиторий pve-enterprise и добавили pve-no-subscription.
* при большом желании, можно удалить файл репозитория с именем pve-enterprise.list и создать новый — кому как будет удобнее.

После обновим список пакетов:

apt-get update

Последнее — редактируем файл /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js:

sed -i "s/getNoSubKeyHtml:/getNoSubKeyHtml_:/" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

* данной командой мы находим getNoSubKeyHtml в файле /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js и меняем на getNoSubKeyHtml_.

Закрываем окно браузера с Proxmox, если оно было открыто и запускаем его снова. Входим в систему — сообщение не должно появиться.

Сертификаты

Сервер PVE устанавливается с самоподписанным сертификатом. Это означает, что при подключении к панели управления мы будем видеть предупреждение от системы безопасности. Чтобы браузер принимал сертификат, он должен соответствовать следующим требованиям:

  • Быть выдан доверенным центром сертификации или зарегистрированным в вашей локальной сети, например, локальный AD CS.
  • Быть для доменного имени, по которому мы заходим в панель управления.
  • Иметь актуальные даты начала действия и окончания.

При этом, мы не должны заходить в панель управления по IP-адресу — в противном случае, независимо от сертификата, мы все-равно, получим предупреждение.

И так, сам сертификат можно купить, запросить бесплатно у Let's Encrypt или создать с использованием локального центра сертификации, например, по данной инструкции. Получив сертификат, открываем панель управления PVE и переходим к серверу - Система - Сертификаты - кликаем по Загрузить пользовательский сертификат:

Переходим к загрузке сертификатов

В открывшемся окне заполняем поля для закрытого и открытого ключей:

Загружаем ключи

... и нажимаем Загрузить. Система предупредит, что загрузится с новым сертификатом — необходимо закрыть вкладку в браузере и открыть консоль управления снова. Если сертификат загружен правильный, мы не увидим предупреждения.

Создание нового пользователя

При установке PVE создается пользователь root. Рассмотрим процесс добавления еще одного через командную строку.

Подключаемся по SSH или открываем консоль из панели управления. Создаем пользователя в системе:

useradd user

* где user — имя создаваемого пользователя.

После создаем нового пользователя в Proxmox:

pveum useradd user@pam

* в данном примере мы создали пользователя user в области pam.

Задаем пароль:

pveum passwd user@pam

Задаем роль для созданного пользователя, например, административную:

pveum aclmod / -user user@pam -role Administrator

* весь список ролей можно посмотреть в панели администрирования в разделе Датацентр - Разрешения - Роли.

Ubuntu и CentOS

Возможно, кому-то захочется установить Proxmox именно на Ubuntu или CentOS. К сожалению, разработчики остановились на Debian. Возможно, есть неофициальные обходные пути установки Proxmox на другие дистрибутивы Linux, однако такой путь не является приемлемым для продуктивной среды. Для настройка виртуализации на Ubuntu и CentOS предлагаю инструкции: