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

Версия 66.1 от Ирина Сафонова на 28.11.2023, 16:14

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