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

Редактировал(а) Ирина Сафонова 18.03.2024, 22:31

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