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

Версия 21.1 от Ирина Сафонова на 01.05.2023, 16:58

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