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.

137 lines
9.0 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_7.2.1.iso`.
Параметры виртуальных машин:
- объем памяти RAM 32ГБ,
- число ядер 8,
- объем жёсткого диска 32ГБ,
- сетевое устройство в vlan 15+X (подключенное к мосту vmbr15+X, без указания vlan тега),
- IP из сети `192.168.1.0/24`,
- шлюз `192.168.1.1`,
- любой общедоступный DNS,
- стандартный пароль для пользователя root,
- доменные имена `n[1-2].studX.myoffice.ru`.
Используйте утилиту `pveversion`, чтобы узнать версию Proxmox.
## 2.
Объедините узлы в Proxmox кластер. Используйте утилиту `pvecm` (документация утилиты `man pvecm`). Чтобы использовать доменные имена на данном этапе внесите их в `/etc/hosts` каждой машины.
```
root@n1 # pvecm create stud15-cluster
root@n1 # systemctl restart corosync
root@n1 # pvecm status
```
```
root@n2 # pvecm add n1.stud15.myoffice.ru
root@n2 # pvecm status
```
## 3.
Настройте доступ к веб-интерфейсу с помощью прокси сервера или туннелей. Прокси-машина должна иметь два сетевых интерфейса, каждый в своей vlan: 499 и 15+X. Первая vlan позволяет подключиться к прокси из сети интернет, вторая позволяет обмениваться данными между прокси и новым кластером Proxmox.
Схема с 2 туннелями
```
Ноутбук --туннель--> (vmbr499) ens18 studX.myoffice.ru ens19 (vmbr30) <--туннель-- ens18 (vmbr30) n1.studX.myoffice.ru[192.168.1.200] (vlan 15+X)
n1 $ ssh -R 8006:localhost:8006 stud@studX.myoffice.ru
notebook $ ssh -L 8006:localhost:8006 stud@studX.myoffice.ru
```
Параметры `-L` и `-R` обозначают точку входа, локальную или на машине, к который подключается ssh. Пакеты отправленные на точку входа будут переданы через туннель, а затем направлены на адрес и порт, указанные после первого порта 8006.
Возможен более простой вариант с одним туннелем:
```
Ноутбук --туннель--> (vmbr499) ens18 studX.myoffice.ru ens19 (vmbr30) ------> ens18 (vmbr30) n1.studX.myoffice.ru[192.168.1.200]
notebook $ ssh -L 8006:192.168.1.200:8006 stud@studX.myoffice.ru
```
Пример настройки прокси сервера nginx.
```
server {
listen 80 default_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 _;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass https://192.168.1.200:8006;
}
location /nginx_ha {
rewrite ^/nginx_ha(.*)$ $1 break;
proxy_pass http://10.160.179.183:80;
}
}
```
Настроено перенаправление с 80 порта на 443, letsencrypt сертификаты, отключена проверка сертификатов для проксируемого сервера (в новом proxmox используются самоподписанные сертификаты на текущий момент). В локации `/` настроено проксирование на `n1.stud15.myoffice.ru`, а также добавление заголовков `Upgrade` и `Connection` для переключения с протокола http на websocket при необходимости (http://nginx.org/en/docs/http/websocket.html). Таким образом узел нового Proxmox кластера доступен по адресу `https://stud15.myoffice.ru/`. Сервер из задания `03_nginx_ha` доступен при обращении к адресу `https://stud15.myoffice.ru/nginx_ha`.
## 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