Advanced

Установка и настройка Terraform для работы с Cloud.ru Advanced

Эта статья полезна?

Чтобы взаимодействовать с облачными ресурсами и управлять инфраструктурой, Terraform использует плагины — провайдеры. Провайдеры разрабатываются независимо от Terraform и имеют собственный релизный цикл и номера версий. Каждый провайдер добавляет свой набор ресурсов и источников данных, которыми Terraform может управлять.

Примечание

Для максимальной совместимости с текущей версией платформы рекомендуется использовать Terraform-провайдер для Cloud.ru Advanced.

С помощью инструкции в этом разделе вы настроите Terraform-провайдер для работы с облаком Cloud.ru Advanced.

Перед началом работы

  1. Создайте IAM-пользователя с типом доступа «Programmatic access» или добавьте программный доступ (en) существующему IAM-пользователю, которого будете использовать для работы с Terraform.

  2. Войдите в консоль управления Advanced как IAM-пользователь, которого будете использовать, и сгенерируйте ключи авторизации Access Key (AK) и Secret Key (SK).

Шаг 1. Укажите Terraform-провайдер

  1. Создайте каталог, где будут находиться конфигурационные файлы Terraform для работы с платформой Cloud.ru Advanced, и перейдите в него. Например:

    mkdir -p terraform/terraform_cloudru_advanced && cd terraform/terraform_cloudru_advanced
  2. Для описания конфигурации Terraform-провайдера в каталоге создайте файл с расширением .tf и откройте его в любом текстовом редакторе. Например:

    touch terraform.tf
    nano terraform.tf
    Примечание

    Наименование файлов с расширением .tf в каталоге может быть произвольным, однако рекомендуем придерживаться общепринятых наименований файлов Terraform.

  3. В файл terraform.tf вставьте блок кода с указанием нужного провайдера (required_providers), адреса авторизации на платформе (auth_url) и переменных для ключей авторизации (var.access_key и var.secret_key):

    terraform {
    required_providers {
    sbercloud = {
    source = "sbercloud-terraform/sbercloud" # Specifies Cloud.ru Advanced provider
    }
    }
    }
    # Cloud.ru Advanced provider configurations
    provider "sbercloud" {
    auth_url = "https://iam.ru-moscow-1.hc.sbercloud.ru/v3" # Authorization address
    region = "ru-moscow-1" # The region to deploy cloud infrastructure to
    # Authorization keys
    access_key = var.access_key
    secret_key = var.secret_key
    }
  4. Сохраните изменения в файле terraform.tf.

Шаг 2. Укажите ключи авторизации

  1. В том же каталоге terraform/terraform_cloudru_advanced создайте файл с расширением .tf для хранения переменных, например variables.tf.

  2. Откройте файл variables.tf для редактирования и вставьте в него шаблон для переменных:

    variable "access_key" {
    default = "access-key-id"
    }
    variable "secret_key" {
    default = "secret-access-key"
    }

    В шаблоне замените access-key-id и secret-access-key на ваши значения Access Key (AK) и Secret Key (SK) из файла credentials.csv, который вы сохранили после генерации ключей.

  3. Сохраните изменения в файле variables.tf.

Шаг 3. Переопределите способ установки провайдера

Когда при инициализации каталога Terraform устанавливает провайдер, по умолчанию он ищет его в общем реестре провайдеров. Terraform-провайдер для Cloud.ru Advanced доступен через зеркало, поэтому необходимо переопределить способ установки провайдера с помощью конфигурационного файла CLI.

  1. Создайте конфигурационный файл CLI. Название и расположение файла зависит от вашей операционной системы:


    Создайте файл .terraformrc и поместите его в домашний каталог вашего пользователя. Например:

    cd
    touch .terraformrc
  2. Чтобы при инициализации Terraform обратился к зеркалу по адресу https://terraform.cloud.ru/ за копией Terraform-провайдера для Cloud.ru Advanced, в конфигурационный файл CLI добавьте блок provider_installation с параметром network_mirror:

    provider_installation {
    network_mirror {
    url = "https://terraform.cloud.ru/"
    include = ["registry.terraform.io/*/*"]
    }
    direct {
    exclude = ["registry.terraform.io/*/*"]
    }
    }
  3. Сохраните изменения в конфигурационном файле CLI.

Шаг 4. Инициализируйте каталог с настройками Terraform

Чтобы Terraform сформировал рабочую конфигурацию, описанную в .tf-файлах, необходимо инициализировать каталог, в котором они находятся. Для этого перейдите в каталог с .tf-файлами и выполните команду:

terraform init

Во время инициализации Terraform скачает Terraform-провайдер для Cloud.ru Advanced из зеркала https://terraform.cloud.ru/ и установит его на ваш компьютер. На этом настройка Terraform-провайдера завершена.