|
|
# Задания
|
|
|
|
|
|
## 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` для анализа производительности узла.
|
|
|
|
|
|
## Релевантные источники
|
|
|
- https://pve.proxmox.com/wiki/Command_line_tools
|
|
|
- https://pve.proxmox.com/wiki/Backup_and_Restore
|
|
|
- https://pve.proxmox.com/wiki/User_Management |