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

Версия 43.1 от Ирина Сафонова на 09.05.2023, 01:19

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