Подключение Terraform к vCD
Содержание
Подготовка файла конфигурации
Для подготовки конфигурационного файла:
1. Создайте конфигурационный файл main.tfи файл с переменнымиvariables.tf.
2. Перейдите по ссылкам ниже и скопируйте поддерживаемый provider в файл конфигурации main.tf.
3. Инициализируйте Terraform в папке с конфигурационным файлом main.tf.
4. Для обновления версии провайдера измените версию в файле main.tf и введите команду terraform init -upgrade.
5. Проверьте версию Terraform и установленного провайдера при помощи команды terraform -version.
Подключение к Cloud Director
Для подключения:
1. Заполните файл main.tf данными.
user = var.vcd_user
password = var.vcd_pass
auth_type = "integrated"
org = var.vcd_org
url = var.vcd_url
max_retry_timeout = var.vcd_max_retry_timeout
allow_unverified_ssl = var.vcd_allow_unverified_ssl
}
2. Заполните variables.tf данными:
- Используется логин для авторизации в Cloud Director.
default = "my-terraform"
description = "Cloud Director tenant user"
}
- Используется пароль для авторизации в Cloud Director.
default = "my-password"
description = " Cloud Director tenant password"
}
- Используется название Tenant Cloud Director
default = "DataFort "
description = "Name tenant"
}
- Используется название Virtual Data Center.
default = "MY-VDC "
description = "Name Virtual Data Center"
}
- Используется ссылка на подключение.
default = " https://cloud3.datafort.ru/api"
description = "Cloud Director URL API"
}
variable "vcd_max_retry_timeout" {
default = "60"
}
variable "vcd_allow_unverified_ssl" {
default = "true"
description = "Disable SSL certificate"
}
Основные команды
Команда | Комментарий |
terraform -help | Вывод справок. |
terraform -version | Вывод версии Terraform и установленных провайдеров. |
terraform init | Инициализация каталога Terraform. |
terraform plan | Генерация файла изменений и вывод изменений в инфраструктуре. |
terraform apply | Применение изменений конфигурации, изначально выводит список изменений и/или добавлений в инфраструктуру. |
terraform destroy | Удаление инфраструктуры. |
terraform refresh | Обновление состояния с локальным файлом и состоянием реальных ресурсов. |
Пример настройки
В примере создается vApp, в него помещается виртуальная машина и подключается к существующей сети. В файле main.tf:
1. Укажите провайдер поддерживаемой версии Cloud Director.
required_providers {
vcd = {
source = "vmware/vcd"
version = "3.7.0"
}
}
}
2. Подключитесь к Tenant.
user = var.vcd_user
password = var.vcd_pass
auth_type = "integrated"
org = var.vcd_org
vdc = var.vcd_vdc
url = var.vcd_url
max_retry_timeout = var.vcd_max_retry_timeout
allow_unverified_ssl = var.vcd_allow_unverified_ssl
}
3. Создайте vApp.
name = "my-first-vapp"
vdc = var.vcd_vdc
org = var.vcd_org
}
4. Подключитесь в ручную созданную сеть network к vApp my-first-vapp.
vapp_name = "my-first-vapp"
vdc = var.vcd_vdc
org_network_name = "network"
depends_on = [vcd_vapp.vapp1]
}
5. Создайте виртуальную машину (ВМ) из шаблона в vApp my-first-vapp и включите кастомизацию ВМ с подключением сети network.
vapp_name = vcd_vapp.vapp1.name
name = "my-first-vm"
computer_name = "myvm"
cpus = 4
cpu_cores = 2
memory = 4096
org = var.vcd_org
vdc = var.vcd_vdc
storage_profile = var.storage_br
os_type = "windows9Server64Guest"
catalog_name = var.catalog_name_templates
template_name = var.name_templates
depends_on = [vcd_vapp.vapp1, vcd_vapp_org_network.is-net]
customization {
enabled = true
force = true
change_sid = true
allow_local_admin_password = true
auto_generate_password = false
admin_password = "my-secure-password"
}
network {
adapter_type = "VMXNET3"
connected = true
ip_allocation_mode = "POOL"
is_primary = true
name = "network"
type = "org"
}
}
Файл variables.tf:
default = "my-terraform"
description = "Cloud Director tenant user"
}
variable "vcd_pass" {
default = "my-password"
description = "Cloud Director tenant password"
}
variable "vcd_org" {
default = "DataFort"
description = "Tenant name"
}
variable "vcd_vdc" {
default = "MY-VDC"
description = "Name VDC"
}
variable "vcd_url" {
default = "https://cloud3.datafort.ru/api"
description = "URL Cloud Director API"
}
variable "vcd_max_retry_timeout" {
default = "60"
}
variable "vcd_allow_unverified_ssl" {
default = "true"
description = "Disable SSL certificate"
}
variable "storage_br" {
default = "HP3.1-VCD-Templates-Bronze-6"
}
variable "catalog_name_templates" {
default = "Windows"
description = "Name catalog templates"
}
variable "name_templates" {
default = "Win2016_DE_RUS DC3 vCD_tmp"
description = "Name templates"
}
Ссылки на документацию
- https://registry.terraform.io/providers/vmware/vcd/latest/docs/resources/vapp_vm — конфигурация виртуальных машин и список используемых типов операционных систем.
- https://registry.terraform.io/providers/vmware/vcd/3.7.0/docs — перечисленные ресурсы для Cloud Director.
- https://developer.hashicorp.com/terraform/downloads — ссылка на скачивание Terraform.