Собственная облачная платформа на базе OpenNebula (single node installation)
Условия установки:
- Ubuntu Live Server 20.04.5 LTS
- OpenNebula 6.4.0
Перед началом установки обновляем версию ядра системы и устанавливаем необходимый набор дополнительного ПО:
|
|
1 Установка OpenNebula
Добавляем репозиторий OpenNebula в пакетный менеджер Apt:
|
|
Устанавливаем основные пакеты OpenNebula:
|
|
Для того чтобы задать пароль администратора запускаем консоль от имени пользователя oneadmin
:
|
|
И записываем его в файл /var/lib/one/.one/one_auth
с помощью следующей комманды:
|
|
Далее выполняем минимальный набор настроек
1.1 FireEdge
Изменить доменное имя хоста в файле /etc/one/sunstone-server.conf
, поле :public_fireedge_endpoint:
. Например:
|
|
1.2 OneGate (опционально)
- В файле
/etc/one/onegate-server.conf
можно изменить значение поля:host:
. Например, так:
|
|
- В файле
/etc/one/oned.conf
|
|
1.3 OneFlow (опционально)
В файле /etc/one/oneflow-server.conf
можно изменить значение поля :host:
. Например:
|
|
1.4 Запуск сервисов
Запуск:
|
|
Для автоматического запуска при загрузке:
|
|
1.5 Проверка установки
После первого запуска OpenNebula вы можете выполнить следующую комманду для проверки соединения с OpenNebula демоном. Вы можете сделать это в консоли или с помощью графического интерфейса.
1.6 Проверка в консоли Linux
Для этого на хосте где установлен фронтенд выполните комманду от имени пользователя oneadmin
(хотя от root-а тоже работает):
|
|
Результат вывода должен быть примерно таким:
|
|
Если вы получили сообщение о ошибке - значит OpenNebula-демон запустился не корректно:
|
|
1.7 Sunstone (графический интерфейс)
Теперь вы можете авторизоваться в Sunstone GUI. Чтобы это сделать, перейдите в браузере по адресу http://<frontend_address>:9869
. Вы должны увидеть форму авторизации. Для авторизации используйте данные указанные в файле /var/lib/one/.one/one_auth
создаваемом ранее
2 Настройка кластера
В рамках данной инструкции подразумевается что мы будем работать только с KVM виртуальными машинами.
Установка KVM-ноды OpenNebula
|
|
Добавляем в конфигурацию AppArmor /etc/apparmor.d/abstractions/libvirt-qemu
следующую строку:
|
|
Теперь необходимо поготовить сеть хоста и настроить соответствующим образом сеть KVM:
Модифицируем файл /etc/netplan/00-installer-config.yaml
примерно до следующего состояние (имя физческого адаптера может отличаться):
|
|
применяем конфигурацию сети:
|
|
Удаляем дефолтную сеть qemu:
|
|
Создаем файл настроек сети host-bridge.xml
для работы KVM через bridge-интерфейс хоста:
|
|
Применяем:
|
|
Теперь можно создать виртуальную сеть использующую данный интерфейс через GUI, либо через консоль:
Создаем файл bridge-network.tmpl
:
|
|
И применяем его:
|
|
Добавляем хуки для автоматического перезапуска виртульных машин при перезагрузке хоста:
Создать файл autostart-host.tmpl
:
|
|
Создать файл autostart-vm.tmpl
:
|
|
|
|
Чтобы созданные ранее хуки начали работать необходимо для виртуальной машины и хоста добавить аттрибут AUTOSTART=true
3 Создание собственного шаблона виртуальной машины
Принцип создания собственного образа заключается в создании следующих сущностей:
- создание образа диска CD-ROM
- создание образа системного диска
- создание шаблона виртуальной машины
Создаем образ CD-ROM диска:
|
|
Создаем системный диск:
|
|
Создаем шаблон ВМ:
|
|
После чего мы можем создать из полученного шаблона виртуальную машину, произвести установку и последним штрихом будет удаление пакетов (если установлены) cloud-init
, NetworkManager
и установке пакета one-context
соответствующего устанавливаемой операционной системе. Нужный пакет можно найти здесь https://github.com/OpenNebula/addon-context-linux/releases/. Так же для того чтобы работал мониторинг ресурсов ВМ, следует установить пакет qemu-guest-agent
.
Удаляем cloud-init
:
|
|
Устанавливаем one-context
:
|
|
Так же если в системе настроен вывод через COM-порт (serial console), то эту опцию так же следует отключить в параметрах загрузчика GRUB.