tocdepth

2

Установка и настройка Terraform для платформы Облако VMware

Для работы с Terraform нужны:

  • Доступ к платформе Облако VMware.

  • Доступ с VPN к дистрибутиву Terraform для ОС вашего устройства.

  • Сгенерированный API-токен для учетной записи администратора организации.

  • Достаточное количество свободных ресурсов для создания VM. Доступные ресурсы отображаются в личном кабинете на главной странице платформы Облако VMware и в консоли VMware Cloud Director.

Установка Terraform

Установить Terraform можно вручную или с помощью менеджера пакетов. Если сайт HashiCorp недоступен, воспользуйтесь VPN.

Установите Terraform.

Установка провайдера VCD

Terraform подключается к платформе Облако VMware с помощью провайдера VCD. Чтобы установить провайдер VCD, нужно создать проект Terraform в текстовом редакторе или в среде разработки, например Intellij IDEA CE.

Проект Terraform включает следующие файлы:

  • terraform.tfvars с набором переменных для подключения к тенанту;

  • main.tf с основным кодом инфраструктуры, параметры которой подтягиваются из переменных в файле terraform.tfvars;

  • token.json с API-токеном для подключения к инфраструктуре.

  1. В каталоге проекта создайте пустые файлы terraform.tfvars, token.json и main.tf.

  2. В файле token.json опишите API-токен пользователя в JSON-формате:

    {"refresh_token":"************API-Token************"}
    
  3. В файле terraform.tfvars опишите параметры платформы Облако VMware для нужного тенанта:

    vcd_url = "https://vcd30.msk.sbercloud.ru/api"
    org_name = "<tenant_name>-dmbBK8eMQ"
    org_vdc = "<tenant_name>-VDC01"
    
  4. В файле main.tf опишите подключение к платформе Облако VMware с помощью провайдера VCD:

    1. Укажите переменные из файла terraform.tfvars:

      # variables
      variable "vcd_url" {}
      variable "org_name" {}
      variable "org_vdc" {}
      variable "vcd_max_retry_timeout" {
      default = "1800"
      }
      variable "vcd_allow_unverified_ssl" {
      default = "true"
      }
      
    2. Укажите описание провайдера для работы Terraform:

      # terraform provider
      terraform {
      required_providers {
      vcd = {
      source = "vmware/vcd"
      version = ">=3.10.0"
      }
      }
      required_version = ">= 1.5.5"
      }
      

    В качестве source указан vmware/vcd. При выполнении кода Terraform скачивает провайдер с ресурсов Hashicorp, для доступа к которым нужен VPN. Для доступа к репозитарию Cloud.ru без VPN в качестве source укажите tf.repo.sbc.space/vmware/vcd.

  5. Пропишите метод авторизации провайдера VCD для выполнения API-запросов в Облако VMware и где искать значения URL, тенанта и OrgVDC для подключения:

    # provider
    provider "vcd" {
    user = "none"
    password = "none"
    auth_type = "api_token_file"
    api_token_file = "token.json"
    allow_api_token_file = true
    org = var.org_name
    vdc = var.org_vdc
    url = var.vcd_url
    max_retry_timeout = var.vcd_max_retry_timeout
    allow_unverified_ssl = var.vcd_allow_unverified_ssl
    }
    
  6. В файл main.tf добавьте два блока:

    # nsxt edge
    data "vcd_resource_list" "list_of_resources" {
    name = "list_of_resources"
    resource_type = "vcd_nsxt_edgegateway"
    }
    
    # Shows the list of resource types for VCD provider
    output "resource_list" {
    value = data.vcd_resource_list.list_of_resources.list
    }
    

    Первый блок находит ресурсы типа Edge Gateway/T1, второй блок выводит результат.

  7. Выполните команду terraform init.

    Результат команды — установка провайдера.

  8. Получите имя Edge Gateway/T1 с помощью команды terraform apply.

    Ресурсы не менялись, поэтому в результате команды отображаются нули — Apply complete! Resources: 0 added, 0 changed, 0 destroyed. Имя Edge Gateway/T1 — <tenant_name>-VDC01-EDGE01.

    После выполнения команды apply в каталоге проекта появился файл состояния инфраструктуры terraform.tfstate.

В результате процедуры был установлен провайдер VCD, с помощью токена API-token выполнено подключение к OrgVDC и получен список Edge Gateway/T1.

Запустили Evolution free tier
для Dev & Test
Получить