Terraform — инструмент для управления инфраструктурой и ресурсами платформы Облако VMware на базе подхода Infrastructure as Code (IaC). Terraform автоматизирует развертывание и управление инфраструктурой Облако VMware. Terraform дает возможность переключиться с работы в пользовательском интерфейсе на описание в конфигурационных файлах через код.
Вы прописываете в коде нужные облачные ресурсы в виде объектов с параметрами, а Terraform исполняет код и изменяет объекты инфраструктуры в соответствии с запросом. Использование Terraform ускоряет подготовку инфраструктуры и минимизирует возможные ошибки.
Terraform помогает DevOps-инженерам и системным администраторам упрощать и автоматизировать управление большим количеством облачных ресурсов.
Основные элементы Terraform для описания инфраструктуры:
Providers (провайдеры) — интерфейсы для взаимодействия с ресурсами, например Google Cloud или Microsoft Azure.
Resources (ресурсы) — объекты, которыми вы управляете, например VM, балансировщик нагрузки или база данных.
Variables (переменные) — значения, которые передаются в Terraform для конфигурации инфраструктуры.
Data Sources (источники данных) — инструменты получения данные из внешних источников, например API, баз данных и других служб.
Outputs (выводы) — результаты выполнения конфигурации, например, IP-адреса или идентификаторы ресурсов.
Terraform позволяет описать инфраструктуру с помощью кода и хранить код в файлах. Основные типы файлов в Terraform:
Файлы конфигурации в формате .tf — основные файлы Terraform, которые содержат описание ресурсов.
Файлы переменных в формате .tfvars — файлы, которые содержат значения переменных для файлов конфигурации.
Файл состояния в формате .tfstate — файл с текущим состоянием инфраструктуры.
Terraform сохраняет в файле состояния информацию о ресурсах в вашей инфраструктуре и их текущих свойствах. Файл обновляется при запуске команды apply. Terraform использует файл состояния при запуске команды apply, чтобы определить, какие ресурсы следует изменить, создать или удалить.
Файл состояния содержит информацию о всей вашей инфраструктуре. На время работы с файлом необходимо обеспечить его блокировку. Файл можно хранить локально или удаленно, но следует соблюдать его конфиденциальность.