Доступ к интерфейсам
Деплой-нода (вспомогательный узел развёртывания) представляет собой вспомогательный узел, упрощающий процедуры установки и обновления компонентов Платформы. С этого узла возможно попасть на управляющие и вычислительные узлы Платформы.
Для доступа на деплой-ноду необходимо выполнить подключение по её адресу при помощи протокола SSH:
$ ssh <ИМЯ_ПОЛЬЗОВАТЕЛЯ>@<IP_ХОСТА>
При успешном входе на деплой-ноду приветствие командной строки сменится на соответствующее деплой-ноде имя.
Процедура входа на управляющий и вычислительный узлы аналогична.
Для доступа к управляющим или вычислительным узлам, рекомендуется вначале выполнить подключение к деплой-ноде, откуда уже выполнять подключения далее:
-
Выполните вход на деплой-ноду по SSH (подробнее — в разделе Вход на деплой-ноду по SSH).
-
Войдите под пользователем
centos, если этого не было сделано ранее, выполните команду:$ sudo su - centos -
Если имя узла неизвестно, получите список узлов, выполнив команду:
$ cat /etc/hostsНайдите название нужного узла в списке.
-
Перейдите на требуемый узел с помощью команды:
$ ssh <ИМЯ_УПРАВЛЯЮЩЕГО_ИЛИ_ВЫЧИСЛИТЕЛЬНОГО_УЗЛА>
Для управления Платформой можно воспользоваться инструментом OpenStack CLI. Это очень мощный инструмент, при помощи которого можно выполнить подавляющее большинство настроек и операций с Платформой, если иметь соответствующий доступ.
Администратор Платформы обладает максимальными правами доступа и может не только работать с виртуальными ресурсами в рамках проектов, но и менять параметры работы Платформы в целом. Подробная информация о ролях и правах доступа приведена в разделе Права и учётные записи пользователей.
Для доступа к управлению Платформой с правами Администратора Платформы:
-
Подключитесь к деплой-ноде по SSH (подробнее — в разделе Вход на деплой-ноду по SSH).
-
Выполните подключение к одному из управляющих узлов (по умолчанию нужные данные хранятся только на управляющем узле № 3):
$ ssh cpn003 -
Переключитесь на пользователя
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— путь к конфигурационному файлу для подключения. -
При необходимости введите токен API.
Пример запроса токена APIPlease enter your API token for project 5e5653f0e0024f9a9da58aa7573997be -
Проверьте подключение OpenStack CLI, выполнив простейшую команду, например:
# openstack host list
Для подключения рекомендуется использование пакета python3-openstackclient-5.6.0.
Для его запуска могут потребоваться пакеты:
-
python3-keystoneclient-3.10.0. -
python3-barbicanclient-5.2.0. -
python3-novaclient-7.1.2. -
python3-cinderclient-1.11.1. -
python3-glanceclient-2.6.0. -
python3-neutronclient-6.1.1. -
python3-manilaclient-1.14.1. -
python3-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_AUTH_TYPE="v3token"export OS_PROJECT_ID="7a1dd7b9be3246a4b113e349b288a210"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"echo "Please enter your API token for project $OS_PROJECT_ID"read -sr OS_TOKEN_INPUTexport OS_TOKEN=$OS_TOKEN_INPUTexport OS_INTERFACE=publicexport OS_IDENTITY_API_VERSION=3
Некоторые операции в Платформе (например, удаление вычислительного узла из nova-placement-api) выполняются только с помощью REST API.
HTTP/HTTPS запросы к REST API по умолчанию будут работать с деплой-ноды и/или управляющего узла. Чтобы они работали из других подсетей, необходимо открыть доступ из них (Firewall и маршрутизация).
Перед выполнением запроса к REST API Платформы требуется получение токена авторизации.
Получить токен авторизации можно в Портале администратора, Портале самообслуживания или с помощью запроса к OpenStack CLI:
Портал администратора
- Выполните вход в Портал администратора с учётными данными Администратора Платформы.
- Нажмите на имя пользователя в шапке страницы и выберите пункт Профиль.
- Перейдите на вкладку Безопасность.
- Скопируйте значение параметра Токен для доступа к API.
Портал самообслуживания
- Выполните вход в Портал самообслуживания с учётными данными Пользователя Платформы.
- Нажмите на имя пользователя в шапке страницы и выберите пункт Настройки проекта.
- Перейдите на вкладку Доступ по API.
- В нижней части экрана скопируйте значение параметра Токен для доступа к API.
TOKEN=$(openstack token issue -c id -f value)
# curl -X POST -H "X-Auth-Token: <ТОКЕН>" <ТЕКСТ_ЗАПРОСА>
После завершения времени действия перевыпустить токен авторизации можно в Портале администратора и Портале самообслуживания:
Портал администратора
- Выполните вход в Портал администратора с учётными данными Администратора Платформы.
- Нажмите на имя пользователя в шапке страницы и выберите пункт Профиль.
- Перейдите на вкладку Безопасность.
- Нажмите кнопку Перевыпустить справа от поля со значением токена.
Портал самообслуживания
- Выполните вход в Портал самообслуживания с учётными данными Пользователя Платформы.
- Нажмите на имя пользователя в шапке страницы и выберите пункт Настройки проекта.
- Перейдите на вкладку Доступ по API.
- В нижней части экрана нажмите кнопку Перевыпустить справа от поля со значением токена.
Точки подключения к API можно получить в Портале самообслуживания или с помощью команды OpenStack CLI.
Портал самообслуживания
- Выполните вход в Портал самообслуживания с учётными данными Пользователя Платформы.
- Нажмите на имя пользователя в шапке страницы и выберите пункт Настройки проекта.
- Перейдите на вкладку API Endpoints.
- Скопируйте значение параметра Токен для доступа к API.
# openstack endpoint list
После получения токена доступа (подробнее — в разделе Получение токена авторизации) возможна работа с Платформой через REST API. Список методов для сервисов OpenStack приведён в официальной документации.
# curl -X <ТИП_ЗАПРОСА> <ПАРАМЕТРЫ> -d <ТЕЛО_ЗАПРОСА> -H "Content-Type: application/json" -H "X-Auth-Token: <ТОКЕН>" <АДРЕС_ЭНДПОИНТА>/<МЕТОД>
Чтобы установить Terraform:
-
Создайте служебную учётную запись. Подровнее в инструкции — Создание служебной учётной записи.
-
На рабочей станции создайте файл
~/.terraformrcсо следующим содержимым:provider_installation {filesystem_mirror {path = "<TERRAFORM_PROVIDERS_PATH>"}}где
path— путь, по которому будет распакован архив с провайдерами для работы с OpenStack, например,/home/redos/terraform_providers/. -
Создайте файл
vkcs_provider.tfсо следующим содержимым:provider "vkcs" {username = "service_user"password = "SomeSuperPassword"project_id = "c411c58fa6364e3fa97c55a1c86bbcd3"# URL компонента Keystone Платформыauth_url = "https://URL.ru:5000/v3/"user_domain_name = "default"} -
Скачайте архив, расположенный по адресу
<DEPLOY_NEXUS_IP>:<PORT>/repository/share/registry.terraform.io.tar.gz. Распакуйте архив по пути, заданному вpathв файле~/.terraformrc:$ curl -O <DEPLOY_NEXUS_IP>:<PORT>/repository/share/registry.terraform.io.tar.gz$ mkdir -p <TERRAFORM_PROVIDERS_PATH>$ tar xvf registry.terraform.io.tar.gz -C <TERRAFORM_PROVIDERS_PATH>где
<DEPLOY_NEXUS_IP>— адрес Deploy-сервера с запущенным Nexus. -
Скачайте исполняемый файл Terraform:
$ curl -O DEPLOY_NEXUS_IP:PORT/repository/share/terraform_1.3.6_linux_amd64.zip$ unzip terraform_1.3.6_linux_amd64.zip$ sudo mv terraform /usr/bin/$ terraform -versionTerraform v1.3.6on linux_amd64 -
Перейдите в директорию с манифестами Terraform и выполните проверку провайдеров с помощью команды
terraform providers
Providers required by configuration:.├── provider[registry.terraform.io/terraform-provider-openstack/openstack] 1.44.0└── provider[registry.terraform.io/vk-cs/vkcs] 0.1.13$ terraform initInitializing the backend...Initializing provider plugins...- Finding terraform-provider-openstack/openstack versions matching "1.44.0"...- Finding vk-cs/vkcs versions matching "0.1.13"...- Installing terraform-provider-openstack/openstack v1.44.0...- Installed terraform-provider-openstack/openstack v1.44.0 (unauthenticated)- Installing vk-cs/vkcs v0.1.13...- Installed vk-cs/vkcs v0.1.13 (unauthenticated)Terraform has created a lock file .terraform.lock.hcl to record the providerselections it made above. Include this file in your version control repositoryso that Terraform can guarantee to make the same selections by default whenyou run "terraform init" in the future.Terraform has been successfully initialized!
-
Установите Terraform c официального зеркала.
-
Перейдите в Портал самообслуживания.
-
Нажмите на имя пользователя в шапке страницы и выберите пункт Настройки проекта.
-
Перейдите на вкладку Доступ по API и нажмите кнопку Скачать openrc версии 3. Сохраните файл.
-
На вкладке Доступ по API скопируйте значение параметра Токен для доступа к API.
-
Выполните Bash-скрипт из файла
~root/users_projects-openrc.shдля загрузки в переменные окружения параметров подключения:$ sudo bash# source ~root/users_projects-openrc.sh -
При необходимости введите токен API.
-
Перейдите на вкладку Terraform. Скачайте основной файл конфигурации Terraform и файл конфигурации зеркала Terraform, нажав одноименные кнопки.
Будут скачаны файлы с именами
vkcs_provider.tfиterraform.rc. -
Выполните с файлами следующие действия:
Для Windows — введите
%APPDATA%в адресную строку проводника Windows и скопируйте в открывшуюся директориюterraform.rc.Для других ОС — переименуйте файл конфигурации зеркала Terraform из
terraform.rcв.terraformrcи скопируйте его в корень домашней директории пользователя. -
Cкопируйте файл
vkcs_provider.tfв рабочую директорию, из которой планируете работать с проектом.
Под каждый проект рекомендуется создавать отдельную рабочую директорию.
В директории, из которой планируете работать с проектом, выполните команду terraform init.
Будут созданы дополнительные файлы, необходимые для работы Terraform.
-
Создайте манифест ресурсов в рабочей директории — например, конфигурацию для создания виртуальной машины.
-
Выполните команду
terraform apply. -
При запросе подтверждения введите
yes.
Дождитесь завершения операции.
Созданные ресурсы появятся в Портале самообслуживания.