4.2 KiB
И так. Я решил поднять небулу
Мной, в качестве сервера выбран 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
Вот и всё, мы прекрасны
Для загрузки ISO лучше всего использовать scp
scp pupu.iso oneadmin@server:/var/lib/one/datastores/0/
Или грузить всё в домашнюю директорию рута и оттуда
sudo mv ~/pupu.iso /var/lib/one/datastores/0/
sudo chown oneadmin:oneadmin /var/lib/one/datastores/0/pupu.iso