Доступ к интерфейсам
Деплой-нода (вспомогательный узел развёртывания) представляет собой вспомогательный узел, упрощающий процедуры установки и обновления компонентов Платформы. С этого узла возможно попасть на управляющие и вычислительные узлы Платформы.
Для доступа на деплой-ноду необходимо выполнить подключение по её адресу при помощи протокола SSH:
ssh <ИМЯ_ПОЛЬЗОВАТЕЛЯ>@<IP_ХОСТА>
При успешном входе на деплой-ноду приветствие командной строки сменится на соответствующее деплой-ноде имя.
Процедура входа на управляющий и вычислительный узлы аналогична.
Для доступа к управляющим или вычислительным узлам, рекомендуется вначале выполнить подключение к деплой-ноде, откуда уже выполнять подключения далее:
- Выполните вход на деплой-ноду по SSH (см. раздел Вход на деплой-ноду по SSH).
- Войдите под пользователем
centos, если этого не было сделано ранее:sudo su - centos. - Если имя узла неизвестно, то получите список узлов. Например, выполнив команду:
cat /etc/hosts. Найдите наименование нужного узла в списке. - Перейдите на требуемый узел с помощью команды
ssh <ИМЯ_УПРАВЛЯЮЩЕГО_ИЛИ_ВЫЧИСЛИТЕЛЬНОГО_УЗЛА>.
Для управления Платформой можно воспользоваться инструментом OpenStack CLI. Это очень мощный инструмент, при помощи которого можно выполнить подавляющее большинство настроек и операций с Платформой, если иметь соответствующий доступ.
Администратор Платформы обладает максимальными правами доступа и может не только работать с виртуальными ресурсами в рамках проектов, но и менять параметры работы Платформы в целом. Подробнее о ролях и правах доступа см. Права и учётные записи пользователей.
Для доступа к управлению Платформой с правами Администратора Платформы:
-
Подключитесь к деплой-ноде по SSH (см. раздел Вход на деплой-ноду по SSH).
-
Выполните подключение к одному из управляющих узлов (по умолчанию нужные данные хранятся только на управляющем узле № 3):
ssh controller3 -
Переключитесь на пользователя
root:sudo bash -
Выполните bash-скрипт из файла
~root/openrc.shдля загрузки в переменные окружения параметров подключения к кластеру:source ~root/openrc.sh -
Дальше можно выполнять запросы к OpenStack. Для проверки работоспособности подключения к Openstack CLI, можно выполнить простейшую команду, например:
openstack host listПри успешном выполнении команды должен отобразиться список узлов. В случае ошибки подключения будет выведено сообщение об ошибке.
Для пользователей Платформы с любой ролью интерфейс OpenStack CLI позволяет выполнять множество операций по управлению ресурсами в рамках их проекта.
Для доступа к OpenStack CLI пользователю Платформы потребуются следующие инструменты и файлы:
- Программное обеспечение (ПО), обеспечивающее доступ к OpenStack CLI (см. раздел ПО для подключения к OpenStack CLI).
- Конфигурационный файл с параметрами подключения к кластеру (см. раздел Конфигурационный файл для подключения).
Чтобы подключиться к среде с установленным ПО для доступа к OpenStack CLI:
-
Установите OpenStack CLI.
pip install python-openstackclient -
Установите службу Manila.
pip install python-manilaclient -
Установите службу Trove.
pip install python-troveclient -
Выполните загрузку параметров подключения из конфигурационного файла.
source ~/users_projects-openrc.shгде
~/users_projects-openrc.sh— путь к конфигурационному файлу для подключения. -
При необходимости введите пароль от пользователя проекта, для которого был скачан конфигурационный файл.
Пример запроса пароля проектаPlease enter your OpenStack Password for project 54683335ee6e4675b66fdd5419793462 as user test@mcs.mail.ru: -
Проверьте подключение OpenStack CLI, выполнив простейшую команду, например:
openstack host list
Для подключения рекомендуется использование пакета python-openstackclient-3.8.1. Для его запуска также могут потребоваться следующие пакеты (зависимости):
python2-cinderclient-1.11.1.python2-glanceclient-2.6.0.python2-keystoneclient-3.10.0.python2-neutronclient-6.1.1.python2-novaclient-7.1.1.python2-octaviaclient-1.8.2.
Конфигурационный файл для подключения к OpenStack CLI содержит необходимые параметры для подключения к кластеру и выполнения запросов.
Чтобы получить конфигурационный файл в Портале самообслуживания:
- Выполните авторизацию под учётной записью Пользователя Платформы.
- Нажмите на имя пользователя в правом верхнем углу и выберите пункт меню «Настройки проекта».
- Перейдите на вкладку «API ключи» и нажмите на кнопку «Скачать openrc версии 3».
- Сохраните файл на локальном диске. Скачанный файл является конфигурационным файлом для подключения к OpenStack CLI.
#!/usr/bin/env bashexport OS_AUTH_URL="https://URL.ru:5000/v3/"export OS_PROJECT_ID="54683335ee6e4675b66fdd5419793462"export OS_REGION_NAME="RegionOne"unset OS_PROJECT_NAMEunset OS_PROJECT_DOMAIN_ID# unset v2.0 items in case setunset OS_TENANT_IDunset OS_TENANT_NAMEif [[ -z $OS_USERNAME ]] || [[ -z $OS_PASSWORD ]] || [[ "$OS_USERNAME" != "test@mcs.mail.ru" ]]; thenexport OS_USERNAME="test@mcs.mail.ru"export OS_USER_DOMAIN_NAME="users"# With Keystone you pass the keystone password.echo "Please enter your OpenStack Password for project $OS_PROJECT_ID as user $OS_USERNAME: "read -sr OS_PASSWORD_INPUTexport OS_PASSWORD=$OS_PASSWORD_INPUTfiexport OS_INTERFACE=publicexport OS_IDENTITY_API_VERSION=3
Некоторые операции в Платформы (например, удаление вычислительного узла из nova-placement-api) выполняются только с помощью REST API.
HTTP/HTTPS запросы к REST API по умолчанию будут работать с деплой-ноды и/или управляющего узла. Для того, чтобы они работали из других подсетей необходимо открыть доступ из них (Firewall и маршрутизация).
Перед выполнением запроса к REST API Платформы требуется получение токена авторизации. Все необходимые параметры для авторизации содержатся в скрипте ~root/openrc.sh (см. раздел Вход для Администратора Платформы).
Чтобы получить токен авторизации, выполните команду:
curl -v -X POST -H "Content-Type: application/json" <OS_AUTH_URL>/v3/auth/tokens -d '{"auth": {"identity": {"methods": ["password"],"password": {"user": {"domain": {"id": "<OS_USER_DOMAIN_NAME>"},"name": "<OS_USERNAME>","password": "<OS_PASSWORD>"}}},"scope": {"project": {"domain": {"id": "<OS_PROJECT_DOMAIN_NAME>"},"name": "<OS_PROJECT_NAME>"}}}}' > /dev/null
% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* About to connect() to internal.domain.ru port 35357 (#0)* Trying 10.254.253.16...0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to internal.domain.ru (10.254.253.16) port 35357 (#0)> POST /v3/auth/tokens HTTP/1.1> User-Agent: curl/7.29.0> Host: internal.domain.ru:35357> Accept: */*> Content-Type: application/json> Content-Length: 218>} [data not shown]* upload completely sent off: 218 out of 218 bytes< HTTP/1.1 201 Created< date: Tue, 28 Jun 2022 06:50:56 GMT< server: Apache< x-subject-token: gAAAAABiuqTQY51C_acBTm4qsn3GFDvUm3Rghdkk8ILfi4cjC02ckN3wf1XiccSVXfvHm-KcFkkx2qS5i_0SCZenm-_9ONuP-83t4xmgL03Kb_PT6Cqgbor9dikhdNzlrkn62WiII-uFX5v6uLEO88nyRsfLJd0LFtLE_aIG6vkmvWxD3GKapYo< vary: X-Auth-Token< x-openstack-request-id: req-e8f87a4d-22ad-411e-995a-addabbbaf481< content-length: 10863< content-type: application/json< set-cookie: PROXYSRV_ADMIN=85b4d58d0923ec44|Yrqk0|Yrqk0; path=/; Secure< connection: close<{ [data not shown]100 11081 100 10863 100 218 77177 1548 --:--:-- --:--:-- --:--:-- 77042* Closing connection 0
Точки подключения к API отображаются в Портале самообслуживания на странице «Настройка проекта», вкладке «API Endpoints».
После получения токена доступа (см. раздел Получение токена авторизации) возможна работа с Платформой через REST API. Список методов для сервисов OpenStack см. в официальной документации.
curl -X <ТИП_ЗАПРОСА> <ПАРАМЕТРЫ> -d <ТЕЛО_ЗАПРОСА> -H "Content-Type: application/json" -H "X-Auth-Token: <ТОКЕН>" <АДРЕС_ЭНДПОИНТА>/<МЕТОД>