Быстрый старт Terraform
Все ресурсы, созданные с помощью Terraform, оплачиваются согласно модели оплаты услуги. Тарификация за ресурс начинается после создания ресурса.
Стоимость ресурсов, созданных с помощью Terraform, не отличается от стоимости ресурсов, созданных с помощью па нели управления.
1. Установить Terraform
-
Скачайте дистрибутив Terraform для вашей операционной системы с сайта HashiCorp или с зеркала. Рекомендуем скачать версию Terraform 1.9.
-
Если вы загрузили дистрибутив Terraform из зеркала, экспортируйте в переменную окружения
PATH
путь к нему:export PATH=$PATH:<path>
Укажите
<path>
— путь к бинарному файлу Terraform. -
Установите Terraform. Для ОС Linux и macOS используйте инструкцию Install Terraform документации HashiCorp.
2. Создать сервисного пользователя
Для работы с примерами нужно создать сервисного пользователя с двумя ролями:
- Администратор аккаунта — роль нужна для инициализации провайдера Selectel и создания ресурсов;
- и Администратор пользователей — для создания дополнительных пользователей и разграничения доступа в проектах.
- В панели управления перейдите в раздел Управление доступом → Уп равление пользователями.
- Нажмите Добавить пользователя.
- Выберите тип пользователя Сервисный пользователь.
- Введите имя пользователя. Оно будет использоваться при авторизации.
- Введите пароль для пользователя или сгенерируйте его. После создания пользователя посмотреть пароль нельзя — можно только сгенерировать новый. Пароль должен быть не короче восьми символов и содержать латинские буквы разных регистров и цифры.
- Выберите роль пользователя Администратор аккаунта.
- Нажмите Добавить роль и выберите роль Администратор пользователей.
- Нажмите Добавить пользователя. Он будет добавлен в список на вкладке Сервисные пользователи. Учетная запись будет активна сразу.
3. Настроить провайдеры
Если используемая версия Terraform-провайдера Selectel ниже 5.0.0, вы можете обновить ее. Подробнее в инструкции Upgrading Terraform Selectel Provider to version 5.0.0 на Terraform Registry.
-
Убедитесь, что в панели управления вы создали сервисного пользователя с ролями Администратор аккаунта и Администратор пользователей.
-
Создайте директорию для хранения конфигурационных файлов и отдельный файл с расширением
.tf
для настройки провайдеров. -
В файл для настройки провайдеров добавьте провайдеры Selectel и OpenStack:
terraform {
required_providers {
selectel = {
source = "selectel/selectel"
version = "5.4.0"
}
openstack = {
source = "terraform-provider-openstack/openstack"
version = "2.1.0"
}
}
}Здесь
version
— версии провайдеров. Актуальную версию можно посмотреть в документации Selectel (в Terraform Registry и GitHub) и OpenStack (в Terraform Registry и GitHub).Подробнее о продуктах, услугах и сервисах, которыми можно управлять с помощью провайдеров, в инструкции Провайдеры Selectel и OpenStack.
-
Инициализируйте провайдер Selectel:
provider "selectel" {
domain_name = "123456"
username = "user"
password = "password"
}Здесь:
domain_name
— номер аккаунта Selectel. Можно посмотреть в панели управления в правом верхнем углу;username
— имя сер висного пользователя с ролями Администратор аккаунта и Администратор пользователей. Можно посмотреть в панели управления: раздел Управление доступом → Управление пользователями → вкладка Сервисные пользователи (раздел доступен только Владельцу аккаунта и Администратору пользователей);password
— пароль сервисного пользователя. Можно посмотреть при создании пользователя или изменить на новый.
-
Создайте проект:
resource "selectel_vpc_project_v2" "project_1" {
name = "project"
}Посмотрите подробное описание ресурса selectel_vpc_project_v2.
-
Создайте сервисного пользователя для доступа к проекту и назначьте ему роль Администратор проекта:
resource "selectel_iam_serviceuser_v1" "serviceuser_1" {
name = "username"
password = "password"
role {
role_name = "member"
scope = "project"
project_id = selectel_vpc_project_v2.project_1.id
}
}Здесь:
username
— имя пользователя;password
— пароль пользователя. Пароль должен быть не короче восьми символов и содержать латинские буквы разных регистров и цифры;project_id
— ID проекта. В панели управления перейдите в раздел Облачная платформа → откройте меню проектов (название текущего проекта) → в строке нужного проекта нажмите .
Посмотрите подробное описание ресурса selectel_iam_serviceuser_v1.
-
Инициализируйте провайдер OpenStack:
provider "openstack" {
auth_url = "https://cloud.api.selcloud.ru/identity/v3"
domain_name = "123456"
tenant_id = selectel_vpc_project_v2.project_1.id
user_name = selectel_iam_serviceuser_v1.serviceuser_1.name
password = selectel_iam_serviceuser_v1.serviceuser_1.password
region = "ru-9"
}