Перейти к основному содержимому

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

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

Все ресурсы, созданные с помощью Terraform, оплачиваются согласно модели оплаты услуги. Тарификация за ресурс начинается после создания ресурса.

Стоимость ресурсов, созданных с помощью Terraform, не отличается от стоимости ресурсов, созданных с помощью панели управления.

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

  1. Скачайте дистрибутив Terraform для вашей операционной системы с сайта HashiCorp. Рекомендуем скачать версию Terraform 1.9.
  2. Установите Terraform. Для ОС Linux и macOS используйте инструкцию Install Terraform документации HashiCorp.

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

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

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

  1. В панели управления в верхнем меню нажмите Аккаунт.

  2. Перейдите в раздел Сервисные пользователи.

  3. Нажмите Добавить сервисного пользователя.

  4. В блоке Данные сервисного пользователя:

    4.1. Введите имя пользователя. Оно будет использоваться при авторизации.

    4.2. Введите пароль для пользователя или сгенерируйте его. После создания пользователя посмотреть пароль нельзя — можно только изменить его. Пароль должен быть не короче 20 символов и включать минимум:

    • одну заглавную и одну строчную латинскую букву (A-Z, a-z);
    • одну цифру (0-9);
    • один специальный символ из списка ASCII Printable 7-Bit Special Characters:
      !"#$%&'()*+,-./:;<=>?@[]^_{|}~.
  5. В блоке Доступ к аккаунту:

    5.1. Настройте разрешение, для этого выберите:

    5.2. Опционально: чтобы назначить пользователю еще одно разрешение, нажмите Добавить разрешение и повторите шаг 5.1.

    5.3. Опционально: выберите группу для пользователя.

  6. Нажмите Добавить пользователя. Он будет добавлен в список на странице Сервисные пользователи. Учетная запись будет активна сразу.

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

  1. Убедитесь, что в панели управления вы создали сервисного пользователя с ролями member в области доступа Аккаунт и iam_admin.

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

  3. В файл для настройки провайдеров добавьте провайдеры Servercore и OpenStack:

    terraform {
    required_providers {
    servercore = {
    source = "terraform.servercore.com/servercore/servercore"
    version = "~> 6.0"
    }
    openstack = {
    source = "terraform-provider-openstack/openstack"
    version = "2.1.0"
    }
    }
    }

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

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

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

    provider "servercore" {
    domain_name = "123456"
    username = "user"
    password = "password"
    auth_region = "ru-9"
    auth_url = "https://cloud.api.selcloud.ru/identity/v3/"
    }

    Здесь:

    • domain_name — номер аккаунта Servercore. Можно посмотреть в панели управления в правом верхнем углу;
    • username — имя сервисного пользователя с ролями member в области доступа Аккаунт и iam_admin. Можно посмотреть в панели управления: в верхнем меню нажмите Аккаунт → раздел Сервисные пользователи (раздел доступен только Владельцу аккаунта и пользователю с ролью iam_admin);
    • password — пароль сервисного пользователя. Можно посмотреть при создании пользователя или изменить на новый;
    • auth_region — пул, например ru-9. Все ресурсы будут создаваться в этом пуле. Список доступных пулов можно посмотреть в инструкции Матрицы доступности.
  5. Создайте проект:

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

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

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

    resource "servercore_iam_serviceuser_v1" "serviceuser_1" {
    name = "username"
    password = "password"
    role {
    role_name = "member"
    scope = "project"
    project_id = servercore_project_v2.project_1.id
    }
    }

    Здесь:

    • username — имя пользователя;
    • password — пароль пользователя. Пароль должен быть не короче восьми символов и содержать латинские буквы разных регистров и цифры;
    • project_id — ID проекта. Можно посмотреть в панели управления: в верхнем меню нажмите Продукты и выберите Облачные серверы → откройте меню проектов → в строке нужного проекта нажмите .

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

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

    provider "openstack" {
    auth_url = "https://cloud.api.selcloud.ru/identity/v3"
    domain_name = "123456"
    tenant_id = servercore_project_v2.project_1.id
    user_name = servercore_iam_serviceuser_v1.serviceuser_1.name
    password = servercore_iam_serviceuser_v1.serviceuser_1.password
    region = "ru-9"
    }

    Здесь:

    • domain_name — номер аккаунта Servercore. Можно посмотреть в панели управления в правом верхнем углу;
    • region — пул, например ru-9. Все ресурсы будут создаваться в этом пуле. Список доступных пулов можно посмотреть в инструкции Матрицы доступности.
  8. Если одновременно с настройкой провайдеров вы создаете ресурсы, то для ресурсов OpenStack добавьте аргумент depends_on. Например, для ресурса openstack_networking_network_v2:

    resource "openstack_networking_network_v2" "network_1" {
    name = "private-network"
    admin_state_up = "true"

    depends_on = [
    servercore_project_v2.project_1,
    servercore_iam_serviceuser_v1.serviceuser_1
    ]
    }
  9. Откройте CLI.

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

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

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

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

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

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

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