Как работать с облаком ServerPlus через API
Что такое API ServerPlus
Облако ServerPlus построено на OpenStack, поэтому им можно управлять не только через панель, но и программно — через стандартный OpenStack API. Всё, что доступно в панели (серверы, диски, сети, кластеры Kubernetes), доступно и через API: это удобно для автоматизации, CI/CD, Terraform и скриптов.
Главный плюс — совместимость с экосистемой OpenStack: подойдёт официальный CLI, SDK для Python и Go, Terraform-провайдер и Ansible. Ничего проприетарного изучать не нужно.
Точка входа и регион
Адрес службы идентификации (Keystone):
https://identity.serverplus.uz/v3Через неё вы получаете токен, а клиент сам находит адреса остальных сервисов через каталог. Регион один — RegionOne.
Установка CLI
Официальный клиент ставится через pip (нужен Python 3):
pip install python-openstackclient
openstack --versionЕсли после установки терминал пишет command not found: openstack, значит каталог со скриптами pip не в PATH — добавьте ~/.local/bin (Linux) или соответствующий каталог (macOS), либо используйте виртуальное окружение.
Аутентификация
Способ 1. RC-файл
В панели скачайте OpenStack RC file и подключите его в терминал:
source ./serverplus-openrc.sh
openstack server listМинус: в RC-файле фигурирует основной пароль от аккаунта. Для постоянной работы и скриптов лучше способ 2.
Способ 2. Application Credentials (рекомендуется)
Отдельная пара «идентификатор + секрет», которую можно ограничить по правам и отозвать, не меняя основной пароль:
openstack application credential create my-automation --description "ключ для скриптов"Секрет показывается один раз — сохраните его.
Файл clouds.yaml
Доступ удобно хранить в файле ~/.config/openstack/clouds.yaml:
clouds:
serverplus:
auth_type: v3applicationcredential
auth:
auth_url: https://identity.serverplus.uz/v3
application_credential_id: <ID>
application_credential_secret: <SECRET>
region_name: RegionOne
interface: public
identity_api_version: 3После этого все команды выполняются так:
export OS_CLOUD=serverplus
openstack server listПервые команды
openstack catalog list # доступные сервисы
openstack server list # ваши серверы
openstack image list # образы ОС
openstack flavor list # конфигурации (flavor)
openstack network list # ваши сетиБезопасность доступа
- Не храните основной пароль в скриптах — используйте application credentials, их можно отозвать по отдельности.
- Файл
clouds.yamlдержите с правамиchmod 600и вне git. - Периодически пересоздавайте ключи автоматизации; при подозрении на утечку — сразу отзывайте.