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

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

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

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. Настроить провайдеры

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

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

    terraform {
    required_providers {
    selectel = {
    source = "selectel/selectel"
    version = "4.0.1"
    }
    openstack = {
    source = "terraform-provider-openstack/openstack"
    version = "1.53.0"
    }
    }
    }

    Здесь 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_vpc_user_v2" "user_1" {
    name = "username"
    password = "password"
    }

    resource "selectel_vpc_role_v2" "role_1" {
    project_id = selectel_vpc_project_v2.project_1.id
    user_id = selectel_vpc_user_v2.user_1.id
    }

    Посмотрите подробное описание ресурсов selectel_vpc_user_v2 и selectel_vpc_role_v2.

  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_vpc_user_v2.user_1.name
    password = selectel_vpc_user_v2.user_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.

4. Создать ресурсы

  1. Убедитесь, что вы находитесь в директории с конфигурационным файлом.

  2. Добавьте в конфигурационный файл ресурсы, которые нужно создать. Можно добавить ресурсы в этот же файл или создать новый файл с расширением .tf в этой директории. Посмотрите примеры конфигурационных файлов.

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

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

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

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

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

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

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