Данное руководство описывает, как развернуть локальную инсталляцию платформы Exordos на одной хост-машине.
Предполагается, что на вашей машине используется Linux (Ubuntu).
Установите необходимые пакеты:
sudo apt update
sudo apt install qemu-kvm qemu-utils libvirt-daemon-system libvirt-dev mkisofs -yДобавьте текущего пользователя в необходимые группы:
sudo adduser $USER libvirt
sudo adduser $USER kvmЛокальная машина должна быть настроена как гипервизор, чтобы платформа могла планировать и запускать на ней виртуальные машины.
Инициализируйте текущую машину как гипервизор:
genesis compute hypervisors initВыполните genesis compute hypervisors init --help, чтобы просмотреть все доступные параметры. Наиболее важные из них:
| Параметр | Описание |
|---|---|
--pool_name TEXT |
Имя пула хранилища libvirt для образов дисков виртуальных машин. По умолчанию: default. |
--packer / -p |
Установить HashiCorp Packer вместе с настройкой гипервизора. |
--romfile_version TEXT |
Версия ROM-файла сетевого интерфейса для установки. |
После настройки локальной машины как гипервизора выполните процедуру bootstrap для развёртывания платформы:
genesis bootstrap -i <version> -f -m core --ssh-public-key /path/to/public/keyгде <version> — версия платформы для развёртывания (например, 0.0.6).
Платформу можно запустить как из локальной сборки (локально собранный образ), так и из удалённого репозитория (готовый образ, загруженный из официального репозитория).
Пример с локальной сборкой:
genesis bootstrap -i /path/to/exordos-core.raw -m coreПример с удалённым репозиторием (по умолчанию):
genesis bootstrap -i https://repository.genesis-core.tech/genesis-elements/core/0.0.6/ -m coreВыполните genesis bootstrap --help, чтобы просмотреть все доступные параметры. Наиболее важные из них:
| Параметр | Описание |
|---|---|
--profile |
Профиль инсталляции: develop, small, medium, large или legacy. По умолчанию: small. |
--cidr IPV4NETWORK |
CIDR основной сети платформы. По умолчанию: 10.20.0.0/22. |
--core-ip IPV4ADDRESS |
IP-адрес основной виртуальной машины. Если не задан, используется второй адрес из --cidr. |
--admin-password TEXT |
Пароль администратора. Если не задан, генерируется автоматически. |
--save-admin-password-file TEXT |
Сохранить пароль администратора в файл вместо вывода в консоль. |
--ssh-public-key PATH |
Путь к публичному SSH-ключу для добавления в виртуальную машину. Можно указать несколько раз. |
--hyper-connection-uri TEXT |
URI подключения к гипервизору, например qemu+tcp://10.0.0.1/system или qemu+ssh://user@10.0.0.1/system. |
--hyper-storage-pool TEXT |
Пул хранилища libvirt для дисков виртуальных машин. По умолчанию: default. |
--force / -f |
Принудительная пересборка, если результат уже существует. |
После завершения genesis bootstrap платформа запущена и готова к работе. Команда выводит учётные данные администратора в консоль (либо сохраняет их в файл, если был указан --save-admin-password-file).
Если при bootstrap был указан публичный SSH-ключ через --ssh-public-key, можно подключиться к основной виртуальной машине напрямую:
ssh ubuntu@10.20.0.2Используйте учётные данные администратора для получения токена доступа от сервиса IAM:
curl --location 'http://10.20.0.2:11010/v1/iam/clients/00000000-0000-0000-0000-000000000000/actions/get_token/invoke' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'username=<ADMIN_USERNAME>' \
--data-urlencode 'password=<ADMIN_PASSWORD>' \
--data-urlencode 'client_id=GenesisCoreClientId' \
--data-urlencode 'client_secret=GenesisCoreSecret' \
--data-urlencode 'scope=' \
--data-urlencode 'ttl=86400'В ответе содержится поле access_token. Используйте этот токен как Bearer-токен во всех последующих запросах к API.
Настройте CLI genesis, зарегистрировав realm и контекст с учётными данными администратора:
genesis settings set-realm local --endpoint http://10.20.0.2:11010 --current
genesis settings set-context local --name admin -u <ADMIN_USERNAME> -p <ADMIN_PASSWORD> --currentset-realm— регистрирует endpoint платформы под именемlocalи устанавливает его как активный realm.set-context— создаёт именованный контекст с учётными данными администратора и устанавливает его как активный.
После настройки можно управлять платформой с помощью команд genesis, например:
genesis compute hypervisors list
genesis elements list