|
|
## 8.1 Как хранить авторизационную информацию отдельно от tf-файла
|
|
|
Для работы с Terraform провайдером DECORT его требуется [инициализировать](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.6.0/04.02-Инициализация-Terraform-провайдера-DECORT.md). Одним из этапов инициализации является авторизация в контроллере облачной платформы.
|
|
|
|
|
|
В зависимости от метода авторизации нужная информация может передаваться в аргументах `app_id` & `app_secret` (пара аргументов), `jwt` (единичный аргумент) или `user` & `password` (пара аргументов). Однако, помещать данную информацию непосредственно в tf-файл может быть небезопасным, так как она позволяет любому, кто получил этот файл, осуществить доступ к контроллеру облачной инфраструктуры от лица данного пользователя.
|
|
|
|
|
|
Если вышеперечисленные параметры не указаны в tf-файле, то Terraform провайдер DECORT попытается использовать значения, заданные в соответствующих переменных окружения:
|
|
|
|
|
|
| Аргумент | Переменная окружения |
|
|
|
| --- | --- |
|
|
|
| app_id | DECORT_APP_ID |
|
|
|
| app_secret | DECORT_APP_SECRET |
|
|
|
| jwt | DECORT_JWT |
|
|
|
| user | DECORT_USER |
|
|
|
| password | DECORT_PASSWORD |
|
|
|
|
|
|
Поэтому для использования tf-файла, не содержащего секретной информации, рекомендуется вместо внесения значений непосредственно в файл перед запуском провайдера установить нужные переменные окружения.
|
|
|
|
|
|
## 8.2 Если Terraform провайдер жалуется на SSL сертификаты
|
|
|
Данная проблема, как правило, возникает в ситуациях, когда ваш экземпляр облачной платформы DECORT использует самоподписанные сертификаты, что не редкость для изолированных инсталляций в доверенных контурах. В таких случаях при вызове _resource_ и _data source_ функций провайдера можно на стадии инициализации провайдера отключить проверку подлинности SSL сертификатов путем установки параметра
|
|
|
|
|
|
`allow_unverified_ssl = true`
|
|
|
|
|
|
Обратите внимание, что отключение проверки подлинности SSL сертификатов является потенциально небезопасным, поэтому данный метод рекомендуется применять с осторожностью и, предпочтительно, при работе с доверенными средами.
|
|
|
|
|
|
## 8.3 Настройка локального провайдера для работы с новыми версиями Terraform
|
|
|
Начиная с Terraform версии 0.12 был изменён алгоритм поиска и инициализации локальных провайдеров. Как следствие, для использования данного провайдера с новыми версиями Terraform уже недостаточно просто поместить исполняемый файл провайдера в ту же директорию, где находится файл _main.tf_.
|
|
|
|
|
|
Ниже перечислены действия, которые необходимо выполнить для настройки провайдера на работу совместно с Terraform версии 0.12 или более новой. Действия описаны для компьютера с ОС семейства Linux и процессорной архитектурой Intel/AMD 64-bit.
|
|
|
|
|
|
1. Создать в домашней директории текущего пользователя директорию `~/.local/share/terraform/plugins/tf.decort.online/mylocal/decs/1.0.0/linux_amd64`
|
|
|
2. Поместить исполняемый файл провайдера `terraform-provider-decort` в эту директорию (или создать symbolic link на исполняемый файл провайдера).
|
|
|
3. Добавить в файл `main.tf` блок, описывающий данный провайдер:
|
|
|
```terraform
|
|
|
terraform {
|
|
|
required_providers {
|
|
|
decs = {
|
|
|
source = "tf.decort.online/mylocal/decort"
|
|
|
version = "~> 1.0"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
Обратите внимание, что провайдер `terraform-provider-decs` разрабатывался для Terrafrom версии 0.11.х. Его работа с более новыми версиями Terraform не гарантируется.
|
|
|
|
|
|
## 8.4 OpenTofu
|
|
|
`Terraform-provider-decort` полностью совместим с OpenTofu версии 1.8. OpenTofu - это форк Terraform, созданный в ответ на переход HashiCorp с лицензии с открытым исходным кодом на BUSL. Инструкция по его установке находится на официальном сайте https://opentofu.org/docs/intro/install/. Все основные команды terraform можно использовать и в OpenTofu
|
|
|
Основные используемые команды:
|
|
|
|
|
|
- `tofu init` — инициализирует рабочий каталог OpenTofu.
|
|
|
- `tofu validate` — подтверждает правильность синтаксиса файла.
|
|
|
- `tofu plan` — генерирует файл изменений и показывает, что изменится при запуске.
|
|
|
- `tofu apply` — строит или изменяет инфраструктуру. Команда покажет план - выполнения и потребует ответа «да» или «нет».
|
|
|
- `tofu refresh` — обновляет локальный файл состояния относительно реальных ресурсов.
|
|
|
- `tofu destroy` — удаляет инфраструктуру, управляемую OpenTofu. |