- tocdepth
2
Установка и настройка 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.msk.sbercloud.ru/api" org_name = "<tenant_name>-dmbBK8eMQ" org_vdc = "<tenant_name>-VDC01"
В файле
main.tf
опишите подключение к платформе Облако VMware с помощью провайдера VCD:Укажите переменные из файла
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" }
Укажите описание провайдера для работы 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
.Пропишите метод авторизации провайдера 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 }
В файл
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, второй блок выводит результат.
Выполните команду
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.
для Dev & Test