Установка и настройка Terraform для платформы Облако VMware
Для работы с Terraform нужны:
Доступ к платформе Облако VMware.
Доступ с VPN к дистрибутиву Terraform для ОС вашего устройства.
Сгенерированный API-токен для учетной записи администратора организации.
Достаточное количество свободных ресурсов для создания VM. Доступные ресурсы отображаются в личном кабинете на главной странице платформы Облако VMware и в консоли VMware Cloud Director.
Установка Terraform
Установить Terraform можно вручную или с помощью менеджера пакетов. Если сайт HashiCorp недоступен, воспользуйтесь VPN.
Установка провайдера VCD
Terraform подключается к платформе Облако VMware с помощью провайдера VCD. Чтобы установить провайдер VCD, нужно создать проект Terraform в текстовом редакторе или в среде разработки, например Intellij IDEA CE.
Проект Terraform включает следующие файлы:
terraform.tfvars с набором переменных для подключения к тенанту;
main.tf с основным кодом инфраструктуры, параметры которой подтягиваются из переменных в файле terraform.tfvars;
token.json с API-токеном для подключения к инфраструктуре.
В каталоге проекта создайте пустые файлы terraform.tfvars, token.json и main.tf.
В файле token.json опишите API-токен пользователя в JSON-формате:
{"refresh_token":"************API-Token************"}В файле terraform.tfvars опишите параметры платформы Облако VMware для нужного тенанта:
vcd_url = "https://vcd30-01.cloud.ru/api"org_name = "<tenant_name>-dmbBK8eMQ"org_vdc = "<tenant_name>-VDC01"В файле main.tf опишите подключение к платформе Облако VMware с помощью провайдера VCD:
Укажите переменные из файла terraform.tfvars:
# variablesvariable "vcd_url" {}variable "org_name" {}variable "org_vdc" {}variable "vcd_max_retry_timeout" {default = "1800"}variable "vcd_allow_unverified_ssl" {default = "true"}Укажите описание провайдера для работы Terraform:
# terraform providerterraform {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.
Пропишите метод авторизации провайдера VCD для выполнения API-запросов в Облако VMware и где искать значения URL, тенанта и OrgVDC для подключения:
# providerprovider "vcd" {user = "none"password = "none"auth_type = "api_token_file"api_token_file = "token.json"allow_api_token_file = trueorg = var.org_namevdc = var.org_vdcurl = var.vcd_urlmax_retry_timeout = var.vcd_max_retry_timeoutallow_unverified_ssl = var.vcd_allow_unverified_ssl}В файл main.tf добавьте два блока:
# nsxt edgedata "vcd_resource_list" "list_of_resources" {name = "list_of_resources"resource_type = "vcd_nsxt_edgegateway"}# Shows the list of resource types for VCD provideroutput "resource_list" {value = data.vcd_resource_list.list_of_resources.list}Первый блок находит ресурсы типа Edge Gateway/T1, второй блок выводит результат.
Выполните команду terraform init.
Результат команды — установка провайдера.
Получите имя 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.
- Установка Terraform
- Установка провайдера VCD