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

Версия 14.1 от Ирина Сафонова на 01.05.2023, 01:20

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