9.1 KiB
Задания
1.
Установите Proxmox на две виртуальные машины Proxmox. Используйте образ диска proxmox_8.0.2.iso
.
Параметры виртуальных машин:
- объем памяти RAM 16ГБ,
- число ядер 4,
- объем жёсткого диска 32ГБ,
- сетевое устройство vmbrX.
Параметры установки:
- IP из сети
192.168.0.0/24
(192.168.0.[201-202]) или из сети 10.160.179.0/24, - шлюз
192.168.0.1
или 10.160.179.1, - любой общедоступный DNS,
- стандартный пароль для пользователя root,
- доменные имена
n[1-2].studX.myoffice.ru
.
Используйте утилиту pveversion
, чтобы узнать версию Proxmox.
Для удобства, настройте беспарольный доступ между машинами. Так как ключи уже сгенерированы при установке, достаточно выполнить ssh-copy-id
. Чтобы использовать доменные имена на данном этапе внесите их в /etc/hosts
каждой машины.
2.
Объедините узлы в Proxmox кластер. Используйте утилиту pvecm
(документация утилиты man pvecm
).
root@n1 # pvecm create studX-cluster
root@n1 # systemctl restart corosync
root@n1 # pvecm status
root@n2 # pvecm add n1.studX.myoffice.ru
root@n2 # pvecm status
3.
Настройте доступ к веб-интерфейсу с помощью прокси сервера.
Вариант прокси 1 для доступа по адресу https://studX.myoffice.ru/proxmox/
Пример настройки прокси сервера nginx.
server {
listen 80 default_server;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/stud15.myoffice.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/stud15.myoffice.ru/privkey.pem;
ssl_verify_client off;
server_name stud12.myoffice.ru;
location / {
# this is for
if ($args ~ ^console) {
proxy_pass https://192.168.0.201:8006;
}
try_files $uri $uri/ =404;
}
location /proxmox {
return 302 https://stud12.myoffice.ru/proxmox/;
}
location /proxmox/ {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Accept-Encoding "";
# Standard proxying headers (why do we need this?)
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
# You need to set this manually since we include this file inside a server block on a main config
proxy_set_header X-Forwarded-Host stud12.myoffice.ru;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# SSL proxying headers
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Ssl on;
proxy_pass https://192.168.0.201:8006/;
}
# Hacks
location ~ ^\/(pve2|api2|novnc|xtermjs|pve-doc|pwt) {
rewrite ^/(.+) /proxmox/$1;
proxy_pass https://192.168.0.201:8006/$request_uri;
}
}
Вариант прокси 2 для доступа по адресу https://proxmox.studX.myoffice.ru/
server {
listen 80 default_server;
listen [::]:80 default_server;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/stud12.samara-myoffice.space/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/stud12.samara-myoffice.space/privkey.pem;
ssl_verify_client off;
server_name proxmox.stud12.samara-myoffice.space;
location / {
# for websockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Standard proxying headers
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
# You need to set this manually since we include this file inside a server block on a main config
proxy_set_header X-Forwarded-Host proxmox.stud12.samara-myoffice.space;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# SSL proxying headers
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Ssl on;
proxy_pass https://10.160.179.184:8006;
}
}
4.
Создайте виртуальную машину в новом Proxmox. Скачайте образ Core
проекта Tiny Core Linux
http://tinycorelinux.net/downloads.html.
5.
Сделать резервное копирование (Backup) виртуальной машины из консоли или в терминале командой vzdump
(документация утилиты man vzdump
). Выберите тип режима --mode stop
без сжатия --compress 0
. Извлеките образ из архивного формата vma (https://pve.proxmox.com/wiki/VMA)
vma extract -v /var/lib/vz/dump/vzdump-qemu-100-2022_10_28-17_24_31.vma /tmp/exported_vm_100_archive
Сконвертируйте образ диска в формат VDI утилитой qemu-img
. Пример команды
$ qemu-img convert -f raw -O vdi /tmp/exported_vm_100_archive/disk-drive-scsi0.raw /tmp/exported_vm_100.vdi
Объем пространства, занимаемый образом, можно определить с помощью команд qemu-img info
или ls -ls
;
Предупреждение: Никогда не используйте qemu-img
для изменения образов, используемых запущенной виртуальной машиной или любым другим процессом; это может привести к уничтожению образа. Кроме того, имейте в виду, что запрос образа, который изменяется другим процессом, может привести к несогласованному состоянию.
6.
Для восстановления из бекапа используется утилита qmrestore
(man qmrestore
). Восстановите из бэкапа виртуальную машину под другим идентификатором.
7.
Сделайте снимок (Snapshot) виртуальной машины командой qm snapshot
. Найдите снимки в веб-интерфейсе. В каком виде хранятся снимки на диске?
8.
Создайте новый мост Linux Bridge
в настройках узла n2
.
9.
Проведите миграцию виртуальной машины с одного узла на другой командой qm migrate
или из веб-интерфейса.
10.
Увеличить объем диска виртуальной машины командой qm resize
.
11.
Посмотрите параметры виртуальной машины в терминале утилитой qm config
.
12.
Настроите перезапуск виртуальной машины в случае отказа.
13.
Выведите список виртуальных машин в терминале.
14.
Создайте новых пользователей Proxmox mike
и vera
в Realm Proxmox VE authentication server
. Установите пользователю сложный пароль. В настройках Datacenter -> Permissions
дайте пользователю mike
права администратора Administrator
на директорию /vms
.
Установите пользователю vera
права пользователя виртуальными машинами PVEVMUser
на директорию /vms
в терминале узла утилитой pveum
(Proxmox VE User Manager).
pveum acl modify /vms -user vera@pve -role PVEVMUser
15.
Создайте пользователя serg
в Realm Proxmox VE authentication server
. Установите пользователю сложный пароль. Создайте ресурсный пул для этого пользователя. Назначьте в настройках пула для serg
права PVEVMAdmin
, PVEPoolUser
. Убедитесь, что serg
может создавать виртуальные машины в своём пуле.
16.
Попробуйте утилиту pveperf
для анализа производительности узла.