Обновить NEBULA/nebula.md

Signed-off-by: Reisber <admin@reisber.space>
This commit is contained in:
2026-02-28 16:33:14 +00:00
parent cecf6a28a3
commit 218e262a46

View File

@@ -2,8 +2,9 @@
## Мной, в качестве сервера выбран debian 12 (6Cores, 12GB RAM + 160gb SSD) ## Мной, в качестве сервера выбран debian 12 (6Cores, 12GB RAM + 160gb SSD)
## Обязательно проверяйте, чтобы у вашего хостера/home-server была виртуализация ## Обязательно проверяйте, чтобы у вашего хостера/home-server была виртуализация
### Начало установки ### Начало установки
## Для начала установим MariaDB сервер ## Для начала установим MariaDB сервер да и nginx
``` ```
apt install nginx certbot python3-certbot-nginx -y
apt-get install mariadb-server curl gnupg2 -y apt-get install mariadb-server curl gnupg2 -y
mysql mysql
CREATE DATABASE opennebula; CREATE DATABASE opennebula;
@@ -68,17 +69,135 @@ cat /var/lib/one/.one/one_auth
systemctl start opennebula opennebula-sunstone systemctl start opennebula opennebula-sunstone
systemctl enable opennebula opennebula-sunstone systemctl enable opennebula opennebula-sunstone
``` ```
Думали всё?
Начинаем дебажить
В целом, нам, для начала, необходимо создать Host. Это место, где будут крутиться наши виртуалки
Имя хоста обязательно должно совпадать с записью в `/etc/hosts`, так-же, если хост находится на одном с небулой сервере, то необходимо что-бы он был с ip 127.0.0.1
Далее
```
su - oneadmin -c "ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa"
su - oneadmin -c "cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys"
chmod 600 /var/lib/one/.ssh/authorized_keys
```
Проверим возможность Oneadmin общаться с самим собой
```
su - oneadmin
ssh -o StrictHostKeyChecking=no localhost
```
Если нас пустило без пароля - шик
Пишем
```
apt-get install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst bridge-utils
usermod -a -G libvirt,kvm oneadmin
```
После этого мы почти готовы поднимать VM, но ещё не совсем
```
ln -s /usr/bin/qemu-system-x86_64 /usr/bin/qemu-kvm-one
chown -R oneadmin:oneadmin /var/lib/one/datastores
systemctl restart libvirtd
```
Далее `nano /etc/libvirt/qemu.conf`
И туда пишем
```
user = "oneadmin"
group = "oneadmin"
dynamic_ownership = 1
```
После
```
apt-get install -y apparmor-utils
aa-complain /usr/sbin/libvirtd
systemctl restart libvirtd
chown -R oneadmin:oneadmin /var/lib/one/datastores
chmod -R 770 /var/lib/one/datastores
```
После этого, ради работы VNC установим FireBridge
```
apt-get install opennebula-fireedge
echo "$(openssl rand -base64 32)" > /etc/one/fireedge_key
chown oneadmin:oneadmin /etc/one/fireedge_key
chmod 600 /etc/one/fireedge_key
systemctl enable opennebula-fireedge
systemctl start opennebula-fireedge
```
Установим "гуакд"
```
apt-get install -y opennebula-guacd
systemctl enable --now opennebula-guacd
```
Проверим его работоспособность
`ss -tlnp | grep 4822`
Далее идём в
```
nano /etc/one/sunstone-server.conf
```
И убеждаемя, что в самом конце этого файла у нас написанно
```
:private_fireedge_endpoint: http://localhost:2616
:public_fireedge_endpoint: http://ip_addr_of_your_server:2616
:fireedge_verify_ssl: false
```
Затем нагенерим самописные-серты для fireedge
```
# Create the directory
mkdir -p /etc/one/ssl
cd /etc/one/ssl
# Generate a self-signed certificate (valid for 365 days)
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout opennebula.key -out opennebula.crt \
-subj "/C=US/ST=State/L=City/O=OpenNebula/CN=ip_addr_of_your_server"
# Ensure the oneadmin user can read them
chown -R oneadmin:oneadmin /etc/one/ssl
chmod 600 /etc/one/ssl/opennebula.key
chmod 644 /etc/one/ssl/opennebula.crt
```
Далее
```
nano /etc/one/fireedge-server.conf
```
Там проверяем, что
```
:host: 127.0.0.1
:port: 2617 меняем порт на 2617
```
```
nano /etc/nginx/sites-available/fireedge
```
Вставляем туда
```
server {
listen 2616 ssl;
server_name ip_addr_of_your_server;
ssl_certificate /etc/one/ssl/opennebula.crt;
ssl_certificate_key /etc/one/ssl/opennebula.key;
location / {
proxy_pass http://127.0.0.1:2617;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
Потом
```
ln -s /etc/nginx/sites-available/fireedge /etc/nginx/sites-enabled/
rm /etc/nginx/sites-enabled/default
systemctl restart nginx
systemctl restart opennebula-fireedge
```
И в целом всё И в целом всё
Ваша небула будет доступна через браузер **http://your-server-ip:9869** Ваша небула будет доступна через браузер **http://your-server-ip:9869**
iptables -A INPUT -p tcp --dport 5900:6000 -j ACCEPT
# Но это ведь слишком скучно. Хочется домен, хочется ходить без порта. # Но это ведь слишком скучно. Хочется домен, хочется ходить без порта.
Качаем Nginx Генерим конфигурационный файл для нашего облачка
```
apt install nginx certbot python3-certbot-nginx -y
```
После этого сгенерим конфигурационный файл для нашего облачка
``` ```
nano /etc/nginx/sites-available/sunstone.conf nano /etc/nginx/sites-available/sunstone.conf
``` ```
@@ -117,6 +236,18 @@ certbot --nginx -d pu-pu-pu-pu-pu-pu.domain.com
Для загрузки ISO лучше всего использовать scp Для загрузки ISO лучше всего использовать scp
```scp pupu.iso oneadmin@server:/var/lib/one/datastores/0/``` ```scp pupu.iso oneadmin@server:/var/lib/one/datastores/0/```
Или грузить всё в домашнюю директорию рута и оттуда Или грузить всё в домашнюю директорию рута и оттуда
Перед этим нужно подредачить настройки хранилища
```
onedatastore show 1 (ID_ХРАНИЛИЩА)
Если видим дискомфортное количество или просто "/" в `RESTRICTED_DIRS`
То:
```
onedatastore update 1
```
И просто сносим RESTRICTED_DIRS
После этого, через WEB-GUI можно будет добавлять ISO по их пути на сервере
``` ```
sudo mv ~/pupu.iso /var/lib/one/datastores/0/ sudo mv ~/pupu.iso /var/lib/one/datastores/0/