diff --git a/NEBULA/nebula.md b/NEBULA/nebula.md new file mode 100644 index 0000000..84be567 --- /dev/null +++ b/NEBULA/nebula.md @@ -0,0 +1,113 @@ +# И так. Я решил поднять небулу +## Мной, в качестве сервера выбран debian 12 (6Cores, 12GB RAM + 160gb SSD) +## Обязательно проверяйте, чтобы у вашего хостера/home-server была виртуализация +### Начало установки +## Для начала установим MariaDB сервер +``` +apt-get install mariadb-server curl gnupg2 -y +mysql +CREATE DATABASE opennebula; +GRANT ALL PRIVILEGES ON opennebula.* TO 'oneadmin' IDENTIFIED BY 'password'; +FLUSH PRIVILEGES; +EXIT; +``` +После этого сделаем парочку очень важных шагов +Поменяем наш hostname +`hostname opennebula` +И заменим хостнейм возле нашего внешнего IP +``` +nano /etc/hosts добавляем наш текущий hostname туда +``` +## Затем начнём установку самой небулы +Сначала скачаем и добавим GPG ключ +``` +curl -fsSL https://downloads.opennebula.io/repo/repo2.key| gpg --dearmor -o /etc/apt/trusted.gpg.d/opennebula.gpg +``` +Затем скачаем саму небулу +``` +echo "deb https://downloads.opennebula.io/repo/6.10/Debian/12 stable opennebula" | tee /etc/apt/sources.list.d/opennebula.list +``` +Обновим и установим репозитроий с небулой +``` +apt-get update -y + +apt-get install opennebula opennebula-sunstone opennebula-gate opennebula-flow -y + +``` +После успешной установки запустим следующую команду для установки необходимых зависимостей +``` +/usr/share/one/install_gems +``` +# Теперь настроим нашу небулу +``` +nano /etc/one/oned.conf +``` +И в этом файле мы меняем следующие строчки +``` +DB = [ BACKEND = "sqlite", +TIMEOUT = 2500 ] +``` +На эти +``` +DB = [ BACKEND = "mysql", +SERVER = "localhost", +PORT = 0, +USER = "oneadmin", +PASSWD = "password", +DB_NAME = "opennebula", +CONNECTIONS = 25, +COMPARE_BINARY = "no" ] +``` +Сохраняем изменения +И после этого сгенерим пароль oneadmin при помощи +``` +cat /var/lib/one/.one/one_auth +``` +После этого +``` +systemctl start opennebula opennebula-sunstone +systemctl enable opennebula opennebula-sunstone +``` +И в целом всё +Ваша небула будет доступна через браузер **http://your-server-ip:9869** + + + +# Но это ведь слишком скучно. Хочется домен, хочется ходить без порта. +Качаем Nginx +``` +apt install nginx certbot python3-certbot-nginx -y +``` +После этого сгенерим конфигурационный файл для нашего облачка +``` +nano /etc/nginx/sites-available/sunstone.conf +``` +И вставим туда +``` +server { + listen 80; + server_name pu-pu-pu-pu-pu-pu.domain.com; + + location / { + proxy_pass http://127.0.0.1:9869; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # Для WebSocket + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + } +} +``` +Сохраним и проверим наш конфиг, а так-же растартнем nginx +``` +nginx -t +systemctl restart nginx +``` +После этого получим серт через Certbot (да, это правда особо не нужно, но лень каждый раз смотреть, что соединение не безопасно) +``` +certbot --nginx -d pu-pu-pu-pu-pu-pu.domain.com +``` \ No newline at end of file