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.

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 для анализа производительности узла.

Релевантные источники