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

Версия 46.1 от Ирина Сафонова на 10.07.2023, 23:14

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