Перейти к основному содержимому
Быстрый старт Terraform
Последнее изменение:

Быстрый старт Terraform

  1. Установите Terraform.
  2. Создайте сервисного пользователя.
  3. Настройте провайдеры.

1. Установить Terraform

  1. Скачайте дистрибутив Terraform для вашей операционной системы с сайта HashiCorp или с зеркала.

  2. Если вы загрузили дистрибутив Terraform из зеркала, экспортируйте в переменную окружения PATH путь к нему:

    export PATH=<path>

    Укажите <path> — путь к бинарному файлу Terraform.

  3. Установите Terraform. Для ОС Linux и macOS используйте инструкцию Install Terraform документации HashiCorp.

2. Создать сервисного пользователя

Для работы с примерами нужно создать сервисного пользователя с двумя ролями:

  • Администратор аккаунта — роль нужна для инициализации провайдера Selectel и создания ресурсов;
  • и Администратор пользователей — для создания дополнительных пользователей и разграничения доступа в проектах облачной платформы.

  1. В панели управления откройте меню в верхнем правом углу и выберите пункт Профиль и настройки.
  2. Перейдите в раздел Управление пользователями.
  3. Нажмите Добавить пользователя.
  4. Выберите тип пользователя Сервисный пользователь.
  5. Введите имя пользователя. Оно будет использоваться при авторизации.
  6. Введите пароль для пользователя или сгенерируйте его. После создания пользователя посмотреть пароль нельзя — можно только сгенерировать новый.
  7. Выберите роль пользователя Администратор аккаунта.
  8. Нажмите Добавить роль и выберите роль Администратор пользователей.
  9. Нажмите Добавить пользователя. Он будет добавлен в список на вкладке Сервисные пользователи. Учетная запись будет активна сразу.

3. Настроить провайдеры

Если используемая версия Terraform-провайдера Selectel ниже 5.0.0, вы можете обновить ее. Подробнее в инструкции Upgrading Terraform Selectel Provider to version 5.0.0 на Terraform Registry.

  1. Создайте директорию для хранения конфигурационных файлов и файл с расширением .tf.

  2. Добавьте провайдеры Selectel и OpenStack:

    terraform {
    required_providers {
    selectel = {
    source = "selectel/selectel"
    version = "5.0.0"
    }
    openstack = {
    source = "terraform-provider-openstack/openstack"
    version = "1.54.1"
    }
    }
    }

    Здесь version — версии провайдеров. Актуальную версию можно посмотреть в документации Selectel (в Terraform Registry и GitHub) и OpenStack (в Terraform Registry и GitHub).

    Подробнее о продуктах, услугах и сервисах, которыми можно управлять с помощью провайдеров, в инструкции Провайдеры Selectel и OpenStack.

  3. Инициализируйте провайдер Selectel:

    provider "selectel" {
    domain_name = "123456"
    username = "user"
    password = "password"
    }

    Здесь:

    • domain_name — номер аккаунта Selectel. Можно посмотреть в панели управления в правом верхнем углу;
    • username — имя сервисного пользователя с ролями Администратор аккаунта и Администратор пользователей. Можно посмотреть в панели управления: откройте меню (номер аккаунта) в правом верхнем углу → выберите пункт Профиль и настройки → раздел Управление пользователями → вкладка Сервисные пользователи (раздел доступен только Владельцу аккаунта и Администратору пользователей);
    • password — пароль сервисного пользователя. Можно посмотреть при создании пользователя или изменить на новый.
  4. Создайте проект облачной платформы:

    resource "selectel_vpc_project_v2" "project_1" {
    name = "project"
    }

    Посмотрите подробное описание ресурса selectel_vpc_project_v2.

  5. Создайте сервисного пользователя для доступа к проекту и назначьте ему роль Администратор проекта:

    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.

  6. Инициализируйте провайдер 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"
    }

    Здесь:

    • domain_name — номер аккаунта Selectel. Можно посмотреть в панели управления в правом верхнем углу;
    • regionпул, например ru-9. Все ресурсы будут создаваться в этом пуле. Список доступных пулов можно посмотреть в инструкции Матрицы доступности.
  7. Опционально: если вы хотите использовать зеркало, создайте отдельный конфигурационный файл Terraform CLI и добавьте в него блок:

    provider_installation {
    network_mirror {
    url = "https://mirror.selectel.ru/3rd-party/terraform-registry/"
    include = ["registry.terraform.io/*/*"]
    }
    direct {
    exclude = ["registry.terraform.io/*/*"]
    }
    }

    Подробнее о настройках зеркал в инструкции CLI Configuration File документации HashiCorp.

  8. Инициализируйте конфигурацию Terraform в директории:

    terraform init
  9. Проверьте, что конфигурационный файл составлен без ошибок:

    terraform validate
  10. Отформатируйте конфигурационный файл:

    terraform fmt
  11. Проверьте, какие ресурсы будут созданы:

    terraform plan
  12. Примените изменения и создайте ресурсы:

    terraform apply
  13. Подтвердите создание — введите yes и нажмите Enter. Созданные ресурсы отобразятся в панели управления.

  14. Если для создания ресурсов оказалось недостаточно квот, увеличьте квоты.