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

Версия 71.1 от Ирина Сафонова на 15.01.2024, 17:04

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