Вступление
Proxmox Virtual Environment — это программа управления виртуализацией с открытым исходным кодом. Он предоставляет единую платформу для управления службами и функциями, такими как гипервизор KVM, контейнеры Linux (LXC), хранилище и сеть. Кроме того, он поставляется с простым в использовании веб-интерфейсом управления, который легко обеспечивает полный контроль. В этой статье объясняется установка виртуальной среды Proxmox с использованием Nginx в качестве обратного прокси-сервера для обслуживания интерфейса управления и защиты интерфейса управления с помощью SSL-сертификата на компьютере с Debian 11.
Чтобы выполнить это руководство, вам необходимо:
- Разверните новый сервер Debian 11
- Направьте поддомен на свой сервер
Обратите внимание, что вы не можете использовать виртуализацию KVM на экземплярах Vultr Cloud Compute, поскольку они уже виртуализированы. Вы по-прежнему можете использовать PVE для создания контейнеров LXC и управления ими. Если вы хотите использовать виртуализацию KVM, вы можете использовать Vultr Bare Metal или любой другой выделенный сервер.
Установите виртуальную среду Proxmox
Изменить имя хоста
Вам необходимо указать субдомен на ваш сервер, используя запись A. На протяжении всей статьи будет использоваться один и тот же субдомен. Например, pve.domain.tld Добавить имя хоста в/etc/hostname
# nano /etc/hostname
Перезапишите существующий контент своим поддоменом и сохраните файл, нажав CTRL+ , XзатемENTER
Добавить имя хоста в/etc/hosts
# nano /etc/hosts
Вставьте следующую строку ниже 127.0.0.1 localhost
и сохраните файл, используя CTRL+ , XзатемENTER
your_public_ip your_subdomain your_subdomain_name
Пример: если ваш общедоступный IP-адрес — 169.254.169.254, а субдомен — pve1.example.com, ваша строка должна выглядеть так:
169.254.169.254 pve1.example.com pve1
Перезагрузите сервер, чтобы убедиться, что все работает
# reboot
Проверка имени хоста
После того, как ваш сервер запущен и запущен, выполните следующую команду и проверьте, совпадают ли выходные данные с вашим поддоменом и IP-адресом. Проверьте имя хоста.
# hostname
Ожидаемый результат.
your_subdomain
Проверьте IP-адрес хоста.
# hostname --ip-address
Ожидаемый результат.
your_public_ip
Конфигурация сети (необязательно)
Пропустите этот раздел, если ваша сеть не была настроена с помощью cloud-init. Вы можете убедиться в этом, проверив, /etc/network/interfaces.d/50-cloud-init
существует ли файл на вашем компьютере.
Изменить конфигурацию сети по умолчанию.
- Определите свой основной интерфейс (см
ifconfig
. команду). - Добавьте основную конфигурацию интерфейса в
/etc/network/interfaces
.
Отключить облачную инициализацию сети.
# nano /etc/cloud/cloud.cfg.d/99-custom-networking.cfg
Вставьте следующую строку и сохраните файл, нажав CTRL+ , Xзатем ENTER.
network: {config: disabled}
Удалите файл конфигурации сети cloud-init.
rm -f /etc/network/interfaces.d/50-cloud-init
Перезагрузите сервер, чтобы убедиться, что все работает.
# reboot
Добавить необходимый репозиторий
Добавьте репозиторий в /etc/apt/sources.list
.
# nano /etc/apt/sources.list
Вставьте следующую строку и сохраните файл, нажав CTRL+ , Xзатем ENTER.
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription
Добавьте ключ GPG в связку ключей источников APT.
# wget https://enterprise.proxmox.com/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
Обновите информацию о пакете.
# apt update
Установка виртуальной среды Proxmox
Установите ifupdown2
пакет.
# apt install -y ifupdown2
Предупреждение: установка
ifupdown2
пакета может привести к прерыванию работы сети. Рекомендуется подключаться через веб-консоль, чтобы не потерять доступ в случае обрыва сети.
Установите Proxmox VE.
# apt install -y proxmox-ve open-iscsi
Перезагрузите сервер для загрузки с помощью ядра Proxmox.
# reboot
Проверка установки PVE
После того, как ваш сервер запущен и запущен, вы можете проверить, была ли установка выполнена успешно, открыв следующую ссылку в своем веб-браузере.
https://your_subdomain:8006/
Вы можете войти в интерфейс управления, используя те же учетные данные, которые вы используете для SSH.
Интерфейс управления обслуживанием с использованием Nginx
В некоторых средах не разрешены подключения к нестандартным портам, поэтому не рекомендуется изменять конфигурацию порта PVE. Использование Nginx — лучшее решение для стандартизации портов и обработки большого трафика.
Установите Nginx
# apt install -y nginx
Добавление vhost для интерфейса управления
Добавьте файл vhost в sites-available
каталог.
# nano /etc/nginx/sites-available/pve
Вставьте следующее содержимое (замените your_subdomain своим фактическим субдоменом) и сохраните файл, используя CTRL+ , Xзатем ENTER.
server {
listen 80;
server_name your_subdomain;
proxy_redirect off;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass https://localhost:8006;
proxy_buffering off;
client_max_body_size 0;
proxy_connect_timeout 3600s;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
send_timeout 3600s;
}
}
Добавьте мягкую ссылку на файл vhost в sites-enabled
каталог.
# nano /etc/nginx/sites-available/pve /etc/nginx/sites-enabled/pve
Протестируйте конфигурацию.
# nginx -t
Ожидаемый результат.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Перезагрузите Nginx.
# systemctl reload nginx
Ограничить прямой доступ
Убедившись, что ваш обратный прокси-сервер работает, вы можете изменить IP-адрес прослушивателя интерфейса управления, чтобы ограничить прямой доступ.
Добавьте IP прослушивателя в /etc/default/pveproxy
.
# nano /etc/default/pveproxy
Вставьте следующую строку и сохраните файл, нажав CTRL+ , Xзатем ENTER.
LISTEN_IP="127.0.0.1"
Перезапустите pveproxy
службу.
systemctl restart pveproxy
Защита интерфейса управления с помощью SSL-сертификата
Мы будем использовать Let's Encrypt для бесплатного получения SSL-сертификата. Убедитесь, что вы указали свой субдомен на IP-адрес сервера. Приведенные ниже шаги будут работать только в том случае, если вы обслуживаете интерфейс управления с помощью Nginx.
Установить Сертбот
apt install -y certbot python3-certbot-nginx
Установить сертификат на Nginx
Вам будет предложено ввести свой адрес электронной почты при выполнении следующей команды, введите свой адрес электронной почты и оставьте остальные значения по умолчанию.
certbot --nginx -d your_subdomain
Проверить доступность
Вы можете проверить, правильно ли настроен SSL-сертификат, открыв следующую ссылку в веб-браузере.
https://your_subdomain/