В этой инструкции мы настроим Terraform для работы с облачной инфраструктурой Сервер Молл Cloud через провайдер OpenStack. Получим пароль пользователя облачной инфраструктуры и OpenRC-файл с параметрами подключения, настроим провайдер и проверим аутентификацию в выбранном проекте.
Дополнительные параметры подключения описаны в документации провайдера OpenStack в Terraform Registry.
Предварительные требования
- У вас должна быть учётная запись в личном кабинете Сервер Молл Cloud. О регистрации см. инструкцию ”Регистрация аккаунта”.
- Услуга «Облачная инфраструктура» должна быть заказана и готова к работе. Как получить услугу, см. в инструкции ”Как заказать облачную инфраструктуру”.
- На компьютере должен быть установлен Terraform. Чтобы проверить, установлен ли он, выполните команду: terraform version. Если Terraform установлен, команда выведет его версию. В противном случае установите его по инструкции “Установка Terraform”.
I. Получение пароля из панели управления услугой
Для подключения нужен пароль пользователя облачной инфраструктуры из реквизитов услуги. Получите его в личном кабинете Сервер Молл Cloud.
- Войдите в личный кабинет. Порядок входа описан в инструкциях:
- ”Вход в панель управления” для входа без двухфакторной аутентификации.
- ”Вход в панель управления с использованием 2FA” для входа с двухфакторной аутентификацией.
- Выберите пункт главного меню “Услуги”.
Откроется страница “Продукты/услуги”. - Выберите нужную услугу облачной инфраструктуры. Откроется панель управления этой услугой.

Вы перейдёте на панель управления услугой "Облачная инфраструктура".
- В разделе “Management Panel” найдите строку “Password” и нажмите кнопку копирования с изображением двух листов бумаги. При наведении на неё отображается подсказка “Click to copy”.

Пароль будет скопирован в буфер обмена. Успешное копирование подтверждается сообщением “The data has been successfully copied to the clipboard”.
Этот пароль потребуется при загрузке параметров подключения в разделе III.
II. Получение OpenRC-файла
OpenRC-файл содержит адрес API, сведения о пользователе, проекте и доменах, а также параметры региона. В варианте “Тип пароля” пароль запрашивается при вы
полнении файла и не записывается в него автоматически.
- Войдите в облачную консоль. Порядок входа описан в инструкции “Вход в панель управления облачной инфраструктурой”. Убедитесь, что выбран проект, с которым вы собираетесь работать через Terraform.
- Нажмите на иконку пользователя в правом верхнем углу облачной консоли.

Откроется выпадающее меню действий пользователя. - В открывшемся меню выберите “Получить файл OpenRC” (Get OpenRC file).

Откроется окно “Получить файл OpenRC” - В окне “Получить файл OpenRC” откройте список “Тип”.
- Выберите “Тип пароля”.
- Нажмите “OK”.

Откроется диалоговое окно для сохранения OpenRC-файла. - Сохраните OpenRC-файл локально.
Данные из этого файла потребуется при загрузке параметров подключения в разделе III.
III. Настройка провайдера и параметров подключения
Файлы конфигурации Terraform имеют расширение .tf и создаются в формате обычного текста в кодировке UTF-8. Для редактирования подойдут:
- Windows: VS Code, Notepad++, Sublime Text или IntelliJ IDEA;
- macOS: VS Code, Sublime Text, IntelliJ IDEA, Vim или Nano;
- Linux: VS Code, Sublime Text, IntelliJ IDEA, Vim, Nano, Gedit или Kate.
Сохраняйте конфигурацию как обычный текст, а не как документ Word, LibreOffice или Google Docs. Убедитесь, что имя файла заканчивается на .tf, а не на .tf.txt.
- Создайте каталог для конфигураций Terraform.
- Создайте файл конфигурации с расширением
.tf, например:main.tf. - Создайте в файле конфигурации следующую структуру:
terraform { required_version = ">= 1.6.0, < 2.0.0" required_providers { openstack = { source = "terraform-provider-openstack/openstack" version = "~> 3.4" } } } variable "os_password" { #По запросу ввести Password из Management Panel description = "Пароль OpenStack" type = string sensitive = true # не выводится в логах plan/apply } provider "openstack" { user_name = "jiirlprb" #OS_USERNAME из OpenRC-файла password = var.os_password auth_url = "https://cli.servermall.ru:5000/v3/" region = "RegionOne" domain_name = "smr-domain-2691-6054-6410-1848151580" #OS_USER_DOMAIN_NAME из OpenRC-файла tenant_name = "smr-project-2691-6055-6411" #OS_PROJECT_NAME из OpenRC-файла } - Откройте скачанный в предыдущем разделе OpenRC-файл.
- Замените значения-заполнители в угловых скобках <...> на реальные значения вашего проекта, исключая сами скобки, для следующих параметров:
<user_name>– имя пользователя облачной инфраструктуры. Замените значением поляOS_USERNAMEиз OpenRC-файла. Как получить этот файл, описано в разделе II.<domain_name>– Имя домена облачной инфраструктуры. Замените значением поляOS_USER_DOMAIN_NAMEиз OpenRC-файла.<tenant_name>– Имя проекта в облачной инфраструктуре. Замените значением поляOS_PROJECT_NAMEиз OpenRC-файла.
Результат должен выглядеть примерно следующим образом:terraform { required_version = ">= 1.6.0, < 2.0.0" required_providers { openstack = { source = "terraform-provider-openstack/openstack" version = "~> 3.4" } } } variable "os_password" { #По запросу ввести Password из Management Panel description = "Пароль OpenStack" type = string sensitive = true # не выводится в логах plan/apply } provider "openstack" { user_name = "jiirlprb" #OS_USERNAME из OpenRC-файла password = var.os_password auth_url = "https://cli.servermall.ru:5000/v3/" region = "RegionOne" domain_name = "smr-domain-2691-6054-6410-1848151580" #OS_USER_DOMAIN_NAME из OpenRC-файла tenant_name = "smr-project-2691-6055-6411" #OS_PROJECT_NAME из OpenRC-файла } - Сохраните изменения в файле конфигурации.
IV. Проверка аутентификации
Убедитесь, что введённые учётные данные правильны и Terraform сможет управлять облачной инфраструктурой Peerobyte. Для проверки аутентификации выполните подключение к облаку и запросите ID проекта – успешное получение идентификатора означает, что аутентификация прошла успешно.
Для проверки аутентификации выполните шаги:
- Откройте файл конфигурации для редактирования.
- Добавьте в него следующие блоки:
# Получаем данные о существующем проекте в Identity v3 по его имени data "openstack_identity_project_v3" "current" { name = "smr-project-2691-6055-6411" #OS_PROJECT_NAME из OpenRC-файла } # Выводим ID найденного проекта output "project_id" { value = data.openstack_identity_project_v3.current.id # Уникальный идентификатор проекта } - Укажите значение параметра
name, заменив плейсхолдер<project_name>значением поляOS_PROJECT_NAMEиз OpenRC-файла. - Сохраните изменения в файле конфигурации.
- Откройте терминал (Windows: PowerShell или CMD; macOS/Linux: Bash, Zsh или другой терминал).
- Перейдите в папку, где находится созданный вами файл конфигурации:
Для Linux и macOS, например:cd /home/user/terraform/conf
Для Windows (PowerShell или CMD), например:cd "C:\Program Files\terraform\conf"
- Инициализируйте Terraform:
terraform init
В случае, если инициализация прошла успешно, вы увидите сообщение:Terraform has been successfully initialized!
- Проверьте успешность аутентификации:
terraform plan
В случае, если аутентификация прошла успешно, вы увидите уникальный идентификатор вашего проекта, напримерproject_id = "e905701a98324d3398b5365707905701"
- Если аутентификация прошла успешна, то удалите добавленные на шаге 2 блоки, в дальнейшем они не понадобятся. И сохраните внесенные изменения.
Что дальше
Вы можете создать инфраструктуру в облаке, руководствуясь примерами из инструкции: “Быстрый старт с Terraform”.