Изначально я пошёл по сложному пути и запустил веб интерфейс через найденный контейнер Docker. Использовал простой Docker-Compose:
services:
lxconsole:
image: 'penninglabs/lxconsole:latest'
restart: unless-stopped
ports:
- '80:5000'
volumes:
- ./backups:/opt/lxconsole/backups
- ./certs:/opt/lxconsole/certs
- ./server:/opt/lxconsole/instance
Всё в целом завелось, зашёл на 80-й порт, зарегистрировал учётку и начал настраивать. Этот веб интерфейс рассчитан в том числе на управление кластером или набором нод. Можно их по отдельности добавлять и переключаться. Но так как я использовал в тестовом окружении самоподписанные сертификаты, у меня не работало подключение к консоли виртуальных машин и контейнеров. И некоторые другие вещи, связанные с WebSocket. То есть этот способ рабочий, но нужно настраивать нормальное соединение по HTTPS.
Я какое-то время помучался и нашёл более удобный и простой вариант для одиночного сервера. Есть репозиторий Zabbly со всеми пакетами для incus:
⇨ https://pkgs.zabbly.com/incus/stable/pool/main/i/incus/
Можно скачать одиночный пакет с веб интерфейсом и установить. Примерно так:
# wget https://pkgs.zabbly.com/incus/stable/pool/main/i/incus/incus-ui-canonical_6.17-debian11-202510101456_amd64.deb
# dpkg -i incus-ui-canonical_6.17-debian11-202510101456_amd64.deb
Либо подключить репозиторий и установить оттуда:
# curl -fsSL https://pkgs.zabbly.com/key.asc -o /etc/apt/keyrings/zabbly.asc
# sh -c 'cat <<EOF > /etc/apt/sources.list.d/zabbly-incus-lts-6.0.sources
Enabled: yes
Types: deb
URIs: https://pkgs.zabbly.com/incus/lts-6.0
Suites: $(. /etc/os-release && echo ${VERSION_CODENAME})
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/zabbly.asc
EOF'
# apt install incus-ui-canonical
После установки добавляем в юнит systemd настройку веб интерфейса:
# systemctl edit incus.service[Service]Environment = INCUS_UI=/opt/incus/ui/Сохраняем, перечитываем конфиг и перезапускаем:
# systemctl daemon-reload# systemctl restart incusРазрешаем подключаться к incus извне:
# incus config set core.https_address :8443Можно идти на порт 8443 и подключаться. Там будет простая инструкция по генерации и добавлению сертификата. Не буду описывать процесс, там всё понятно. В веб интерфейсе каких-то особых нюансов нет.
Покажу пример, как настроить проброс порта внутрь виртуалки. Для примера возьму VM ubuntu24 c IP 10.253.116.184. Проброшу в неё порт 80 с внешнего IP адреса ноды 192.168.137.14.
Иду в раздел Networks, выбираю бридж incusbr0, перехожу на вкладку Forwards. Добавляю Forward:
◽️Listen address: 192.168.137.14
◽️Listen port: 80, Protocol: TCP
◽️Target address: 10.253.116.184
◽️Target port: 80
То же самое через консоль:
# incus network forward port add incusbr0 192.168.137.14 TCP 80 10.253.116.184 80Сравните с тем, как это выглядит в Proxmox.
Проект в целом мне понравился. Причём без каких-то компромиссов. Для одиночного хоста он удобнее Proxmox. Тут более простой и наглядный IPAM, с которым не надо разбираться. Раздача IP адресов и NAT работают сразу. Проброс портов внутрь виртуалок тоже делается очень просто через веб интерфейс. В Proxmox всё это настраивается сложнее. Причём заметно сложнее. Для проброса портов придётся писать правила для iptables.
Если у вас есть жирная виртуалка с включённой вложенной виртуализацией, а она у некоторых хостеров включена, то вы можете на ней развернуть Incus и запускать виртуалки с контейнерами.
Мой цикл из двух заметок полностью описывает запуск и базовую настройку Incus. Можно разворачивать и пользоваться. Я целостного материала по этой теме не нашёл, поэтому пришлось самому разбираться, читать документацию. Сюда бы ещё добавить подключение LVM или ZFS пулов для дисков виртуалок, а так же бэкапы, но уже лимита по длине заметки не хватает.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX
#incus #виртуализация



