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

Версия 35.1 от Ирина Сафонова на 05.05.2023, 23:38

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