Исходный код вики Подключение Terraform к vCD

Версия 30.1 от Ирина Сафонова на 02.05.2023, 11:02

Скрыть последних авторов
Ирина Сафонова 9.1 1 **Содержание**
Ирина Сафонова 8.1 2
Ирина Сафонова 7.1 3 {{toc/}}
Ирина Сафонова 1.1 4
5 == Подготовка файла конфигурации ==
6
7 ----
8
Ирина Сафонова 15.1 9 Для подготовки конфигурационного файла:
Ирина Сафонова 1.1 10
Ирина Сафонова 23.1 11 ~1. Создайте конфигурационный файл {{code language="none"}}main.tf{{/code}}и файл с переменными{{code language="none"}}variables.tf{{/code}}.
Ирина Сафонова 16.1 12 2. Перейдите по ссылкам ниже и скопируйте поддерживаемый **provider** в файл конфигурации {{code language="none"}}main.tf{{/code}}.
Ирина Сафонова 1.1 13
14 {{info}}
15 Для Cloud Director 10.2 максимально поддерживаемая версия провайдера 3.7.0, для Cloud Director 10.3 максимальная поддерживаемая версия 3.9.0.
16 Провайдер 3.7.0 https://registry.terraform.io/providers/vmware/vcd/3.7.0/docs
17 Провайдер 3.9.0 https://registry.terraform.io/providers/vmware/vcd/latest/docs
18 {{/info}}
19
Ирина Сафонова 13.1 20 [[image:Рисунок1.png]]
Ирина Сафонова 11.2 21
Ирина Сафонова 15.1 22 3. Инициализируйте Terraform в папке с конфигурационным файлом {{code language="none"}}main.tf{{/code}}.
Ирина Сафонова 1.1 23
24 {{info}}
25 Команда {{code language="none"}}terraform init{{/code}} используется для инициализации рабочего каталога Terraform. При введении команды она автоматически загрузит и установит все необходимые провайдеры и плагины Terraform.
26 {{/info}}
27
Ирина Сафонова 13.1 28 [[image:Рисунок2.png]]
Ирина Сафонова 1.1 29
Ирина Сафонова 15.1 30 4. Для обновления версии провайдера измените версию в файле {{code language="none"}}main.tf{{/code}} и введите команду {{code language="none"}}terraform init -upgrade{{/code}}.
Ирина Сафонова 1.2 31
Ирина Сафонова 13.1 32 [[image:Рисунок3.png]]
Ирина Сафонова 1.3 33
Ирина Сафонова 11.5 34 5. Проверьте версию Terraform и установленного провайдера при помощи команды {{code language="none"}}terraform -version{{/code}}.
Ирина Сафонова 2.1 35
Ирина Сафонова 13.1 36 [[image:Рисунок5.png]]
Ирина Сафонова 11.5 37
Ирина Сафонова 2.1 38 == Подключение к Cloud Director ==
39
40 ----
41
Ирина Сафонова 19.1 42 Для подключения:
43
Ирина Сафонова 2.1 44 ~1. Заполните файл {{code language="none"}}main.tf{{/code}} данными.
Ирина Сафонова 3.1 45
46 {{code language="none"}}
47 provider "vcd" {
Ирина Сафонова 2.1 48 user = var.vcd_user
49 password = var.vcd_pass
50 auth_type = "integrated"
51 org = var.vcd_org
52 url = var.vcd_url
53 max_retry_timeout = var.vcd_max_retry_timeout
54 allow_unverified_ssl = var.vcd_allow_unverified_ssl
55 }
Ирина Сафонова 3.1 56
Ирина Сафонова 2.1 57 {{/code}}
58
Ирина Сафонова 3.1 59 2. Заполните {{code language="none"}}variables.tf{{/code}} данными:
60
Ирина Сафонова 4.1 61 * Используется логин для авторизации в Cloud Director.
Ирина Сафонова 3.1 62
63 {{code language="none"}}
64 variable "vcd_user" {
65 default = "my-terraform"
66 description = "Cloud Director tenant user"
67 }
68
69 {{/code}}
70
Ирина Сафонова 4.1 71 * Используется пароль для авторизации в Cloud Director.
Ирина Сафонова 3.1 72
73 {{code language="none"}}
74 variable "vcd_pass" {
75 default = "my-password"
76 description = " Cloud Director tenant password"
77 }
78
79 {{/code}}
80
81 * Используется название Tenant Cloud Director
82
83 {{code language="none"}}
84 variable "vcd_org" {
85 default = "DataFort "
86 description = "Name tenant"
87 }
88
89 {{/code}}
90
Ирина Сафонова 4.1 91 * Используется название Virtual Data Center.
Ирина Сафонова 3.1 92
93 {{code language="none"}}
94 variable "vcd_vdc" {
95 default = "MY-VDC "
96 description = "Name Virtual Data Center"
97 }
98
99 {{/code}}
100
Ирина Сафонова 4.1 101 * Используется ссылка на подключение.
Ирина Сафонова 3.1 102
103 {{code language="none"}}
104 variable "vcd_url" {
105 default = " https://cloud3.datafort.ru/api"
106 description = "Cloud Director URL API"
107 }
108 variable "vcd_max_retry_timeout" {
109 default = "60"
110 }
111 variable "vcd_allow_unverified_ssl" {
112 default = "true"
113 description = "Disable SSL certificate"
114 }
115
116 {{/code}}
Ирина Сафонова 5.1 117
118 === Основные команды ===
119
Ирина Сафонова 27.2 120 (% class="table-bordered" style="width:544.818px" %)
Ирина Сафонова 29.1 121 (% style="background-color:#d3d3d3; text-align:center" %)|(% style="width:228px" %)**Команда**|(% style="width:315px" %)**Комментарий**
Ирина Сафонова 26.3 122 |(% style="width:228px" %){{code language="none"}}terraform -help{{/code}}|(% style="width:315px" %)Вывод справок.
123 |(% style="width:228px" %){{code language="none"}}terraform -version{{/code}}|(% style="width:315px" %)Вывод версии Terraform и установленных провайдеров.
Ирина Сафонова 27.1 124 |(% style="width:228px" %){{code language="none"}}terraform init{{/code}}|(% style="width:315px" %)Инициализация каталога Terraform.
125 |(% style="width:228px" %){{code language="none"}}terraform plan{{/code}}|(% style="width:315px" %)Генерация файла изменений и вывод изменений в инфраструктуре.
126 |(% style="width:228px" %){{code language="none"}}terraform apply{{/code}}|(% style="width:315px" %)Применение изменений конфигурации, изначально выводит список изменений и/или добавлений в инфраструктуру.
127 |(% style="width:228px" %){{code language="none"}}terraform destroy{{/code}}|(% style="width:315px" %)Удаление инфраструктуры.
128 |(% style="width:228px" %){{code language="none"}}terraform refresh{{/code}}|(% style="width:315px" %)Обновление состояния с локальным файлом и состоянием реальных ресурсов.
Ирина Сафонова 26.2 129
Ирина Сафонова 27.1 130 (% style="color:inherit; font-family:inherit; font-size:26px" %)Пример настройки
Ирина Сафонова 14.1 131
132 ----
133
Ирина Сафонова 15.1 134 В примере создается **vApp**, в него помещается виртуальная машина и подключается к существующей сети. В файле {{code language="none"}}main.tf{{/code}}:
Ирина Сафонова 14.1 135
136 1. Укажите провайдер поддерживаемой версии Cloud Director.
137
138 {{code language="none"}}
139 terraform {
140 required_providers {
141 vcd = {
142 source = "vmware/vcd"
143 version = "3.7.0"
144 }
145 }
146 }
147
148 {{/code}}
149
150 2. Подключитесь к **Tenant**.
151
152 {{code language="none"}}
153 provider "vcd" {
154 user = var.vcd_user
155 password = var.vcd_pass
156 auth_type = "integrated"
157 org = var.vcd_org
158 vdc = var.vcd_vdc
159 url = var.vcd_url
160 max_retry_timeout = var.vcd_max_retry_timeout
161 allow_unverified_ssl = var.vcd_allow_unverified_ssl
162 }
163
164 {{/code}}
165
166 3. Создайте **vApp**.
167
168 {{code language="none"}}
169 resource "vcd_vapp" "vapp1" {
170 name = "my-first-vapp"
171 vdc = var.vcd_vdc
172 org = var.vcd_org
173 }
174
175 {{/code}}
176
177 4. Подключитесь в ручную созданную сеть **network** к **vApp** **my-first-vapp**.
178
179 {{code language="none"}}
180 resource "vcd_vapp_org_network" "is-net" {
181 vapp_name = "my-first-vapp"
182 vdc = var.vcd_vdc
183 org_network_name = "network"
184 depends_on = [vcd_vapp.vapp1]
185 }
186
187 {{/code}}
188
Ирина Сафонова 20.1 189 5. Создайте виртуальную машину (ВМ) из шаблона в **vApp my-first-vapp** и включите кастомизацию ВМ с подключением сети **network**.
Ирина Сафонова 14.1 190
191 {{code language="none"}}
192 resource "vcd_vapp_vm" "vm1" {
193 vapp_name = vcd_vapp.vapp1.name
194 name = "my-first-vm"
195 computer_name = "myvm"
196 cpus = 4
197 cpu_cores = 2
198 memory = 4096
199 org = var.vcd_org
200 vdc = var.vcd_vdc
201 storage_profile = var.storage_br
202 os_type = "windows9Server64Guest"
203 catalog_name = var.catalog_name_templates
204 template_name = var.name_templates
205 depends_on = [vcd_vapp.vapp1, vcd_vapp_org_network.is-net]
206 customization {
207 enabled = true
208 force = true
209 change_sid = true
210 allow_local_admin_password = true
211 auto_generate_password = false
212 admin_password = "my-secure-password"
213 }
214
215 network {
216 adapter_type = "VMXNET3"
217 connected = true
218 ip_allocation_mode = "POOL"
219 is_primary = true
220 name = "network"
221 type = "org"
222 }
223 }
224
225 {{/code}}
226
Ирина Сафонова 30.1 227 Файл {{code language="none"}}variables.tf{{/code}}:
Ирина Сафонова 14.1 228
229 {{code language="none"}}
230 variable "vcd_user" {
231 default = "my-terraform"
232 description = "Cloud Director tenant user"
233 }
234 variable "vcd_pass" {
235 default = "my-password"
236 description = "Cloud Director tenant password"
237 }
238 variable "vcd_org" {
239 default = "DataFort"
240 description = "Tenant name"
241 }
242 variable "vcd_vdc" {
243 default = "MY-VDC"
244 description = "Name VDC"
245 }
246 variable "vcd_url" {
247 default = "https://cloud3.datafort.ru/api"
248 description = "URL Cloud Director API"
249 }
250 variable "vcd_max_retry_timeout" {
251 default = "60"
252 }
253 variable "vcd_allow_unverified_ssl" {
254 default = "true"
255 description = "Disable SSL certificate"
256 }
257 variable "storage_br" {
258 default = "HP3.1-VCD-Templates-Bronze-6"
259 }
260 variable "catalog_name_templates" {
261 default = "Windows"
262 description = "Name catalog templates"
263 }
264 variable "name_templates" {
265 default = "Win2016_DE_RUS DC3 vCD_tmp"
266 description = "Name templates"
267 }
268
269 {{/code}}
Ирина Сафонова 17.1 270
Ирина Сафонова 19.1 271 == Ссылки на документацию ==
Ирина Сафонова 17.1 272
273 ----
274
Ирина Сафонова 26.1 275 * [[https:~~/~~/registry.terraform.io/providers/vmware/vcd/latest/docs/resources/vapp_vm>>url:https://registry.terraform.io/providers/vmware/vcd/latest/docs/resources/vapp_vm]]  — конфигурация виртуальных машин и список используемых типов операционных систем.
Ирина Сафонова 25.1 276 * [[https:~~/~~/registry.terraform.io/providers/vmware/vcd/3.7.0/docs>>url:https://registry.terraform.io/providers/vmware/vcd/3.7.0/docs]] — перечисленные ресурсы для [[Cloud Director>>https://wiki.dfcloud.ru/bin/view/%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20Terraform%20%D0%BA%20vCD/#H41F43E43443A43B44E44743543D43843543ACloudDirector]].
Ирина Сафонова 18.1 277 * [[https:~~/~~/developer.hashicorp.com/terraform/downloads>>url:https://developer.hashicorp.com/terraform/downloads]] — ссылка на скачивание Terraform.