Updated 04. Обзор Terraform провайдера DECORT. (markdown)
@@ -1,174 +0,0 @@
|
||||
## Назначение
|
||||
Terraform провайдер DECORT предназначен для управления облачными ресурсами на платформе Digital Energy Cloud Orchestration Technology (DECORT). Основные функции провайдера:
|
||||
1. Создание виртуальных серверов на базе KVM - экземпляров _compute_ на базе виртуальных машин архитектуры Intel x86 или IBM Power (см. _resource_ функцию [**decort_kvmvm**](https://github.com/rudecs/terraform-provider-decort/wiki/07.02-Resource-функция-decort_kvmvm-управление-виртуальными-машинами-на-базе-KVM)).
|
||||
2. Создание ресурсных групп (см. _resource_ функцию [**decort_resgroup**](https://github.com/rudecs/terraform-provider-decort/wiki/07.01-Resource-функция-decort_resgroup-управление-ресурсными-группами)).
|
||||
3. Создание ресурсов хранения _disk_ (см. _resource_ функцию [**decort_disk**](https://github.com/rudecs/terraform-provider-decort/wiki/07.03-Resource-функция-decort_disk-управление-дисковыми-ресурсами)).
|
||||
4. Создание образов (см. _resource_ функцию [**decort_image**](https://github.com/rudecs/terraform-provider-decort/wiki/07.08-Resource-функция-decort_image-управление-образом))
|
||||
5. Создание виртуальных образов (см. _resource_ функцию [**decort_virtual_image**](https://github.com/rudecs/terraform-provider-decort/wiki/07.09-Resource-функция-decort_virtual_image-управление-виртуальным-образом))
|
||||
6. Создание cdrom - образов (см. _resource_ функцию [**decort_cdrom_image**](https://github.com/rudecs/terraform-provider-decort/wiki/07.10-Resource-функция-decort_cdrom_image-управление-cdrom-образом))
|
||||
7. Удаление нескольких образов (см. _resource_ функцию [**decort_delete_images**](https://github.com/rudecs/terraform-provider-decort/wiki/07.11-Resource-функция-decort_delete_images-удаление-нескольких-образов))
|
||||
8. Создание правил трансляции сетевых портов для виртуальных серверов (см. _resource_ функцию [**decort_pfw**](https://github.com/rudecs/terraform-provider-decort/wiki/07.12--Resource-функция-decort_pfw-управление-правилами-трансляции-сетевых-портов-для-виртуальных-серверов))
|
||||
9. Создание виртуальных сетевых сегментов (см. _resource_ функцию [**decort_vins**](https://github.com/rudecs/terraform-provider-decort/wiki/07.04-Resource-функция-decort_vins-управление-виртуальными-сетевыми-сегментами))
|
||||
10. Создание снапшотов (см. _resource_ функцию [**decort_snapshot**](https://github.com/rudecs/terraform-provider-decort/wiki/07.05-Resource-функция-decort_snapshot-управление-снапшотами))
|
||||
11. Создание кластера kubernetes (см. _resource_ функцию [**decort_k8s**](https://github.com/rudecs/terraform-provider-decort/wiki/07.06-Resource-функция-decort_k8s-управление-кластером-kubernetes))
|
||||
12. Создание worker group кластера (см. _resource_ функцию [**decort_k8s_wg**](https://github.com/rudecs/terraform-provider-decort/wiki/07.07-Resource-функция-decort_k8s_wg-управление-worker-groups-кластера))
|
||||
13. Создание sep (см. _resource_ функцию [**decort_sep**](https://github.com/rudecs/terraform-provider-decort/wiki/07.14-Resource-функция-decort_sep-управление-sep))
|
||||
14. Создание sep config (см. _resource_ функцию [**decort_sep_config**](https://github.com/rudecs/terraform-provider-decort/wiki/07.13-Resource-функция-decort_sep_config-управление-конфигурацией-sep))
|
||||
15. Создание pcidevice (см. _resource_ функцию [**decort_pcidevice**](https://github.com/rudecs/terraform-provider-decort/wiki/07.15-Resource-функция-decort_pcidevice-управление-устройством))
|
||||
16. Создание account (см. _resource_ функцию [**decort_account**](https://github.com/rudecs/terraform-provider-decort/wiki/07.16-Resource-функция-decort_account-управление-аккаунтом))
|
||||
17. Создание basic service (см. _resource_ функцию [**decort_bservice**](https://github.com/rudecs/terraform-provider-decort/wiki/07.17-Resource-функция-decort_bservice-управление-базовым-сервисом))
|
||||
18. Создание basic service group (см. _resource_ функцию [**decort_bservice_group**](https://github.com/rudecs/terraform-provider-decort/wiki/07.18-Resource-функция-decort_bservice_group-управление-группой-базового-сервиса))
|
||||
19. Получение информации о подписчиках (см. _data source_ функцию [**decort_account**](https://github.com/rudecs/terraform-provider-decort/wiki/06.05-Data-функция-decort_account-получение-информации-о-подписчике)).
|
||||
20. Получение информации о существующих виртуальных серверах на базе KVM (см. _data source_ функцию [**decort_kvmvm**](https://github.com/rudecs/terraform-provider-decort/wiki/06.02-Data-функция-decort_kvmvm-получение-информации-о-виртуальной-машине-на-базе-KVM)).
|
||||
21. Получение информации о существующих дисковых ресурсах _disk_ (см. _data source_ функцию [**decort_disk**](https://github.com/rudecs/terraform-provider-decort/wiki/06.03-Data-функция-decort_disk-получение-информации-о-диске)).
|
||||
22. Получение информации о существующих виртуальных сетевых сегментах _ViNS_ (см. _data source_ функцию [**decort_vins**](https://github.com/rudecs/terraform-provider-decort/wiki/06.04-Data-функция-decort_vins-получение-информации-о-ViNS)).
|
||||
23. Получение информации о существующих ресурсных группах (см. _data source_ функцию [**decort_resgroup**](https://github.com/rudecs/terraform-provider-decort/wiki/06.01-Data-функция-decort_resgroup-получение-информации-о-ресурсной-группе)).
|
||||
24. Получение информации об образах ОС, на базе которых можно создавать новые вычислительные ресурсы (см. _data source_ функцию [**decort_image**](https://github.com/rudecs/terraform-provider-decort/wiki/06.07-Data-функция-decort_image-получение-информации-об-образе)).
|
||||
25. Получение информации обо всех образах ОС, на базе которых можно создавать новые вычислительные ресурсы (см. _data source_ функцию [**decort_image_lst**](https://github.com/rudecs/terraform-provider-decort/wiki/06.06-Data-функция-decort_image_list-получение-информации-об-образах))
|
||||
26. Получение информации о всех доступных снапшотах (см. _data source_ функцию [**decort_snapshot_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.11-Data-функция-decort_snapshot_list-получение-информации-о-snapshots))
|
||||
27. Получение информации о всех доступных платформах (см. _data source_ функцию [**decort_grid_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.08-Data-функция-decort_grid_list-получение-списков-доступных-платформ))
|
||||
28. Получение информации о доступной платформе (см. _data source_ функцию [**decort_grid**](https://github.com/rudecs/terraform-provider-decort/wiki/06.09-Data-функция-decort_grid-получение-информации-о-grid))
|
||||
29. Получение информации о доступных для образа stacks (см. _data source_ функцию [**decort_image_stacks**](https://github.com/rudecs/terraform-provider-decort/wiki/06.10-Data-функция-decort_image_list_stacks-получение-информации-о-доступных-для-образа-stacks))
|
||||
30. Получение информации о sep (см. _data source_ функцию [**decort_sep**](https://github.com/rudecs/terraform-provider-decort/wiki/06.12-Data-функция-decort_sep-получение-информации-о-sep))
|
||||
31. Получение информации о всех доступных sep (см. _data source_ функцию [**decort_sep_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.13-Data-функция-decort_sep_list-получение-информации-о-всех-sep))
|
||||
32. Получение информации о конфигурации sep (см. _data source_ функцию [**decort_sep_config**](https://github.com/rudecs/terraform-provider-decort/wiki/06.14-Data-функция-decort_sep_config-получение-информации-о-конфигурации-sep))
|
||||
33. Получение информации о дисках, используемых sep (см. _data source_ функцию [**decort_sep_disk_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.15-Data-функция-decort_sep_disk_list-получение-информации-о-дисках,-используемых-sep))
|
||||
34. Получение информации о загрузке sep (см. _data source_ функцию [**decort_sep_consumption**](https://github.com/rudecs/terraform-provider-decort/wiki/06.16-Data-функция-decort_sep_consumption-получение-информации-о-загрузке-sep))
|
||||
35. Получение информации о sep pool (см. _data source_ функцию [**decort_sep_pool**](https://github.com/rudecs/terraform-provider-decort/wiki/06.17-Data-функция-decort_sep_pool-получение-информации-о-pool-sep))
|
||||
36. Получение информации о pcidevice (см. _data source_ функцию [**decort_pcidevice**](https://github.com/rudecs/terraform-provider-decort/wiki/06.19-Data-функция-decort_pcidevice-получение-информации-о-pcidevice))
|
||||
37. Получение информации о всех доступных pcidevice (см. _data source_ функцию [**decort_pcidevice_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.18-Data-функция-decort_pcidevice_list-получение-информации-о-всех-pcidevice))
|
||||
38. Получение информации о виртуальном графическом устройстве vgpu (см. _data source_ функцию [**decort_vgpu**](https://github.com/rudecs/terraform-provider-decort/wiki/06.20-Data-функция-decort_vgpu-получение-информации-о-виртуальном-графическом-устройстве))
|
||||
39. Получение информации о ресурсных группах (см. _data source_ функцию [**decort_rg_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.21-Data-функция-decort_rg_list-получение-информации-о-всех-ресурсных-группах))
|
||||
40. Получение информации о дисках (см. _data source_ функцию [**decort_disk_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.22-Data-функция-decort_disk_list-получение-информации-о-всех-дисках))
|
||||
41. Получение информации о виртуальных сетях (см. _data source_ функцию [**decort_vins_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.23-Data-функция-decort_vins_list-получение-информации-о-всех-виртуальных-сетях))
|
||||
42. Получение информации о внешних сетях (см. _data source_ функцию [**decort_extnet_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.24-Data-функция-decort_extnet_list-получение-информации-о-всех-доступных-внешних-сетях))
|
||||
43. Получение информации о внешней сети по умолчанию (см. _data source_ функцию [**decort_extnet_default**](https://github.com/rudecs/terraform-provider-decort/wiki/06.25-Data-функция-decort_extnet_default-получение-информации-о-внешней-сети-по-умолчанию))
|
||||
44. Получение информации о вычислительных мощностях, использующих внешнюю сеть (см. _data source_ функцию [**decort_extnet_computes_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.26-Data-функция-decort_extnet_computes_list-получение-информации-о-вычислительных-ресурсах,-использующих-внешнюю-сеть))
|
||||
45. Получение информации о внешней сети (см. _data source_ функцию [**decort_extnet**](https://github.com/rudecs/terraform-provider-decort/wiki/06.27-Data-функция-decort_extnet-получение-информации-о-внешней-сети))
|
||||
46. Получение информации о запросах аккаунта (см. _data source_ функцию [**decort_account_audits_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.28-Data-функция-decort_account_audits_list-получение-информации-о-запросах-аккаунта))
|
||||
47. Получение информации об используемых аккаунтом экземплярах computes (см. _data source_ функцию [**decort_account_computes_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.29-Data-функция-decort_account_computes_list-получение-информации-об-используемых-аккаунтом-экземплярах-computes))
|
||||
48. Получение информации о вычислительных ресурсах, используемых аккаунтом (см. _data source_ функцию [**decort_account_consumed_units**](https://github.com/rudecs/terraform-provider-decort/wiki/06.30-Data-функция-decort_account_consumed_units-получение-информации-об-используемых-ресурсах-аккаунта))
|
||||
49. Получение информации о вычислительных ресурсах, используемых аккаунтом, по типу (см. _data source_ функцию [**decort_account_consumed_units_by_type**](https://github.com/rudecs/terraform-provider-decort/wiki/06.31-Data-функция-decort_account_consumed_units_by_type-получение-информации-об-используемых-ресурсах-по-типу))
|
||||
50. Получение информации о дисках, используемых аккаунтом (см. _data source_ функцию [**decort_account_disks_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.32-Data-функция-decort_account_disks_list-получение-информации-об-используемых-аккаунтом-дисках))
|
||||
51. Получение информации о группах с плавающим ip-адресом, используемых аккаунтом (см. _data source_ функцию [**decort_account_flipgroups_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.33-Data-функция-decort_account_flipgroups_list-получение-информации-об-используемых-групп-с-плавающим-ip-адресом))
|
||||
52. Получение информации о зарезервированных аккаунтом ресурсах (см. _data source_ функцию [**decort_account_reserved_units**](https://github.com/rudecs/terraform-provider-decort/wiki/06.34-Data-функция-decort_account_reserved_units-получение-информации-о-зарезервированных-ресурсах-аккаунта))
|
||||
53. Получение информации об используемых аккаунтом ресурсных группах (см. _data source_ функцию [**decort_account_rg_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.35-Data-функция-decort_account_rg_list-получение-информации-о-ресурсных-группах-аккаунта))
|
||||
54. Получение информации об используемых аккаунтом шаблонах (см. _data source_ функцию [**decort_account_templates_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.36-Data-функция-decort_account_templates_list-получение-информации-о-шаблонах-аккаунта))
|
||||
55. Получение информации об используемых аккаунтом виртуальных сетях (см. _data source_ функцию [**decort_account_vins_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.37-Data-функция-decort_account_vins_list-получение-информации-о-всех-сетях-аккаунта))
|
||||
56. Получение информации обо всех доступных аккаунтах (см. _data source_ функцию [**decort_account_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.38-Data-функция-decort_account_list-получение-информации-о-всех-доступных-аккаунтах))
|
||||
57. Получение информации обо всех удаленных аккаунтах (см. _data source_ функцию [**decort_account_deleted_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.39-Data-функция-decort_account_deleted_list-получение-информации-об-удаленных-аккаунтах))
|
||||
58. Получение информации об аккаунте (см. _data source_ функцию [**decort_account**](https://github.com/rudecs/terraform-provider-decort/wiki/06.40-Data-функция-decort_account-получение-информации-об-аккаунте))
|
||||
59. Получение информации обо всех базовых сервисах (см. _data source_ функцию [**decort_bservice_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.41-Data-функция-decort_bservice_list-получение-информации-о-всех-доступных-базовых-сервисах))
|
||||
60. Получение информации об удаленных базовых сервисах (см. _data source_ функцию [**decort_bservice_deleted_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.42-Data-функция-decort_bservice_deleted_list-получение-информации-о-всех-удаленных-базовых-сервисах))
|
||||
61. Получение информации о снимках состояния базового сервиса (см. _data source_ функцию [**decort_bservice_snapshot_list**](https://github.com/rudecs/terraform-provider-decort/wiki/06.43-Data-функция-decort_bservice_snapshot_list-получение-информации-о-всех-доступных-снимках-состояния-сервиса))
|
||||
62. Получение информации о базовом сервисе (см. _data source_ функцию [**decort_bservice**](https://github.com/rudecs/terraform-provider-decort/wiki/06.44-Data-функция-decort_bservice-получение-информации-о-базовом-сервисе))
|
||||
63. Получение информации о группе базового сервиса (см. _data source_ функцию [**decort_bservice_group**](https://github.com/rudecs/terraform-provider-decort/wiki/06.45-Data-функция-decort_bservice_group-получение-информации-о-вычислительной-группе-базового-сервиса))
|
||||
|
||||
## Системные требования
|
||||
|
||||
Для запуска провайдера вам потребуется компьютер, на котором установлен Terraform. Провайдер тестировался вместе с Terraform 0.xx.x на системах под управлением ОС семейства Linux и персональных компьютерах под управлением Windows 10.
|
||||
|
||||
Кроме того, в связи с тем, что начиная с версии 0.12 Terraform изменил алгоритм поиска и инициализации локальных провайдеров, настройка данного провайдера для работы с Terraform 0.12 или более новыми версиями потребует выполнения ряда дополнительных действий. Подробнее см. [8.3 Настройка локального провайдера для работы с новыми версиями Terraform](https://github.com/rudecs/terraform-provider-decort/wiki/08.--Полезные-советы.#83-Настройка-локального-провайдера-для-работы-с-новыми-версиями-terraform).
|
||||
|
||||
## Установка
|
||||
|
||||
Terraform провайдер представляет собой бинарный исполняемый файл. Чтобы быстро начать пользоваться Terraform провайдером DECORT, поместите собранный для вашей целевой платформы исполняемый файл в ту же папку, где находится ваш файл _main.tf_.
|
||||
|
||||
Обычно, провайдер устанавливается автоматически из terraform registry.
|
||||
Для этого достаточно в файл _main.tf_ добавить директивы определения провайдера.
|
||||
```terraform
|
||||
provider "decort" {
|
||||
authenticator = "oauth2"
|
||||
#controller_url = <DECORT_CONTROLLER_URL>
|
||||
controller_url = "https://mr4.digitalenergy.online"
|
||||
#oauth2_url = <DECORT_SSO_URL>
|
||||
oauth2_url = "https://sso.digitalenergy.online"
|
||||
allow_unverified_ssl = true
|
||||
}
|
||||
```
|
||||
|
||||
При выполнении команды `terraform init` провайдер будет автоматически установлен.
|
||||
|
||||
После этого вы можете использовать стандартные команды Terraform-а для управления ресурсами в соответствии с декларациями, содержащимися в _main.tf_, а именно:
|
||||
|
||||
```
|
||||
terraform init
|
||||
terraform plan
|
||||
terraform apply
|
||||
```
|
||||
|
||||
## Сборка из исходных кодов
|
||||
|
||||
1. Скачайте и установите Go по ссылке: [https://go.dev/dl/](https://go.dev/dl/)
|
||||
2. Скачайте и установите terraform по ссылке: [https://learn.hashicorp.com/tutorials/terraform/install-cli?in=terraform/aws-get-started](https://learn.hashicorp.com/tutorials/terraform/install-cli?in=terraform/aws-get-started)
|
||||
3. Склонируйте репозиторий с провайдером, выполнив команду:
|
||||
```bash
|
||||
git clone https://github.com/rudecs/terraform-provider-decort.git
|
||||
```
|
||||
4. Перейдите в скачанную папку с провайдером и выполните команду
|
||||
```bash
|
||||
go build -o terraform-provider-decort
|
||||
```
|
||||
Если вы знаете как устроен _makefile_, то можно изменить в файле `Makefile` параметры под вашу ОС и выполнить команду
|
||||
```bash
|
||||
make build
|
||||
```
|
||||
5. Полученный файл необходимо поместить:
|
||||
Linux:
|
||||
```bash
|
||||
~/.terraform.d/plugins/${host_name}/${namespace}/${type}/${version}/${target}
|
||||
```
|
||||
Windows:
|
||||
```powershell
|
||||
%APPDATA%\terraform.d\plugins\${host_name}/${namespace}/${type}/${version}/${target}
|
||||
```
|
||||
ВНИМАНИЕ: для ОС Windows `%APP_DATA%` является каталогом, в котором будут помещены будущие файлы terraform.
|
||||
Где:
|
||||
- host_name - имя хоста, держателя провайдера, например, digitalenergy.online
|
||||
- namespace - пространство имен хоста, например decort
|
||||
- type - тип провайдера, может совпадать с пространством имен, например, decort
|
||||
- version - версия провайдера, например 1.2
|
||||
- target - версия ОС, например windows_amd64
|
||||
6. После этого, создайте файл `main.tf`.
|
||||
7. Добавьте в него следующий блок
|
||||
```terraform
|
||||
terraform {
|
||||
required_providers {
|
||||
decort = {
|
||||
version = "1.2"
|
||||
source = "digitalenergy.online/decort/decort"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
В поле `version` указывается версия провайдера.
|
||||
Обязательный параметр
|
||||
Тип поля - строка
|
||||
ВНИМАНИЕ: Версии в блоке и в репозитории, в который был помещен провайдер должны совпадать!
|
||||
|
||||
В поле `source` помещается путь до репозитория с версией вида:
|
||||
```bash
|
||||
${host_name}/${namespace}/${type}
|
||||
```
|
||||
ВНИМАНИЕ: все параметры должны совпадать с путем репозитория, в котором помещен провайдер.
|
||||
|
||||
8. Добавьте в файл блок с инициализацией провайдера.
|
||||
```terraform
|
||||
provider "decort" {
|
||||
authenticator = "oauth2"
|
||||
#controller_url = <DECORT_CONTROLLER_URL>
|
||||
controller_url = "https://mr4.digitalenergy.online"
|
||||
#oauth2_url = <DECORT_SSO_URL>
|
||||
oauth2_url = "https://sso.digitalenergy.online"
|
||||
allow_unverified_ssl = true
|
||||
}
|
||||
```
|
||||
|
||||
9. В консоле выполнить команду
|
||||
```bash
|
||||
terraform init
|
||||
```
|
||||
|
||||
10. Если все прошло хорошо - ошибок не будет.
|
||||
|
||||
Более подробно о сборке провайдера можно найти по ссылке: [https://learn.hashicorp.com/tutorials/terraform/provider-use?in=terraform/providers](https://learn.hashicorp.com/tutorials/terraform/provider-use?in=terraform/providers)
|
||||
108
04.-Обзор-Terraform-провайдера-DECORT.md
Normal file
108
04.-Обзор-Terraform-провайдера-DECORT.md
Normal file
@@ -0,0 +1,108 @@
|
||||
## Системные требования
|
||||
|
||||
Для запуска провайдера вам потребуется компьютер, на котором установлен Terraform. Провайдер тестировался вместе с Terraform 0.xx.x на системах под управлением ОС семейства Linux и персональных компьютерах под управлением Windows 10.
|
||||
|
||||
Кроме того, в связи с тем, что начиная с версии 0.12 Terraform изменил алгоритм поиска и инициализации локальных провайдеров, настройка данного провайдера для работы с Terraform 0.12 или более новыми версиями потребует выполнения ряда дополнительных действий. Подробнее см. [8.3 Настройка локального провайдера для работы с новыми версиями Terraform](https://github.com/rudecs/terraform-provider-decort/wiki/08.--Полезные-советы.#83-Настройка-локального-провайдера-для-работы-с-новыми-версиями-terraform).
|
||||
|
||||
## Установка
|
||||
|
||||
Terraform провайдер представляет собой бинарный исполняемый файл. Чтобы быстро начать пользоваться Terraform провайдером DECORT, поместите собранный для вашей целевой платформы исполняемый файл в ту же папку, где находится ваш файл _main.tf_.
|
||||
|
||||
Обычно, провайдер устанавливается автоматически из terraform registry.
|
||||
Для этого достаточно в файл _main.tf_ добавить директивы определения провайдера.
|
||||
```terraform
|
||||
provider "decort" {
|
||||
authenticator = "oauth2"
|
||||
#controller_url = <DECORT_CONTROLLER_URL>
|
||||
controller_url = "https://mr4.digitalenergy.online"
|
||||
#oauth2_url = <DECORT_SSO_URL>
|
||||
oauth2_url = "https://sso.digitalenergy.online"
|
||||
allow_unverified_ssl = true
|
||||
}
|
||||
```
|
||||
|
||||
При выполнении команды `terraform init` провайдер будет автоматически установлен.
|
||||
|
||||
После этого вы можете использовать стандартные команды Terraform-а для управления ресурсами в соответствии с декларациями, содержащимися в _main.tf_, а именно:
|
||||
|
||||
```
|
||||
terraform init
|
||||
terraform plan
|
||||
terraform apply
|
||||
```
|
||||
|
||||
## Сборка из исходных кодов
|
||||
|
||||
1. Скачайте и установите Go по ссылке: [https://go.dev/dl/](https://go.dev/dl/)
|
||||
2. Скачайте и установите terraform по ссылке: [https://learn.hashicorp.com/tutorials/terraform/install-cli?in=terraform/aws-get-started](https://learn.hashicorp.com/tutorials/terraform/install-cli?in=terraform/aws-get-started)
|
||||
3. Склонируйте репозиторий с провайдером, выполнив команду:
|
||||
```bash
|
||||
git clone https://github.com/rudecs/terraform-provider-decort.git
|
||||
```
|
||||
4. Перейдите в скачанную папку с провайдером и выполните команду
|
||||
```bash
|
||||
go build -o terraform-provider-decort
|
||||
```
|
||||
Если вы знаете как устроен _makefile_, то можно изменить в файле `Makefile` параметры под вашу ОС и выполнить команду
|
||||
```bash
|
||||
make build
|
||||
```
|
||||
5. Полученный файл необходимо поместить:
|
||||
Linux:
|
||||
```bash
|
||||
~/.terraform.d/plugins/${host_name}/${namespace}/${type}/${version}/${target}
|
||||
```
|
||||
Windows:
|
||||
```powershell
|
||||
%APPDATA%\terraform.d\plugins\${host_name}/${namespace}/${type}/${version}/${target}
|
||||
```
|
||||
ВНИМАНИЕ: для ОС Windows `%APP_DATA%` является каталогом, в котором будут помещены будущие файлы terraform.
|
||||
Где:
|
||||
- host_name - имя хоста, держателя провайдера, например, digitalenergy.online
|
||||
- namespace - пространство имен хоста, например decort
|
||||
- type - тип провайдера, может совпадать с пространством имен, например, decort
|
||||
- version - версия провайдера, например 1.2
|
||||
- target - версия ОС, например windows_amd64
|
||||
6. После этого, создайте файл `main.tf`.
|
||||
7. Добавьте в него следующий блок
|
||||
```terraform
|
||||
terraform {
|
||||
required_providers {
|
||||
decort = {
|
||||
version = "1.2"
|
||||
source = "digitalenergy.online/decort/decort"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
В поле `version` указывается версия провайдера.
|
||||
Обязательный параметр
|
||||
Тип поля - строка
|
||||
ВНИМАНИЕ: Версии в блоке и в репозитории, в который был помещен провайдер должны совпадать!
|
||||
|
||||
В поле `source` помещается путь до репозитория с версией вида:
|
||||
```bash
|
||||
${host_name}/${namespace}/${type}
|
||||
```
|
||||
ВНИМАНИЕ: все параметры должны совпадать с путем репозитория, в котором помещен провайдер.
|
||||
|
||||
8. Добавьте в файл блок с инициализацией провайдера.
|
||||
```terraform
|
||||
provider "decort" {
|
||||
authenticator = "oauth2"
|
||||
#controller_url = <DECORT_CONTROLLER_URL>
|
||||
controller_url = "https://mr4.digitalenergy.online"
|
||||
#oauth2_url = <DECORT_SSO_URL>
|
||||
oauth2_url = "https://sso.digitalenergy.online"
|
||||
allow_unverified_ssl = true
|
||||
}
|
||||
```
|
||||
|
||||
9. В консоле выполнить команду
|
||||
```bash
|
||||
terraform init
|
||||
```
|
||||
|
||||
10. Если все прошло хорошо - ошибок не будет.
|
||||
|
||||
Более подробно о сборке провайдера можно найти по ссылке: [https://learn.hashicorp.com/tutorials/terraform/provider-use?in=terraform/providers](https://learn.hashicorp.com/tutorials/terraform/provider-use?in=terraform/providers)
|
||||
Reference in New Issue
Block a user