You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

191 lines
9.1 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Задания
## 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