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

Версия 39.1 от Ирина Сафонова на 06.05.2023, 00:15

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