Skip to content

Справочник по Terraform для начинающих

Terraform — это инструмент для управления инфраструктурой как кодом (IaC). Он позволяет вам описывать желаемое состояние вашей инфраструктуры в текстовых файлах, а затем автоматически создавать, изменять и удалять облачные ресурсы, чтобы они соответствовали этому описанию.

Здесь собраны основные команды, которые вы будете использовать в 99% случаев.

Основной рабочий процесс

1. terraform init

"Инициализация"

Первая команда, которую нужно выполнить в новой директории с конфигурацией. * Скачивает необходимые плагины (провайдеры), описанные в main.tf. * Настраивает "бэкенд" (хранилище состояния).

terraform init

2. terraform validate

"Проверка синтаксиса"

Проверяет ваши файлы конфигурации (.tf) на наличие синтаксических ошибок и корректность использования атрибутов. Не обращается к облаку, только статический анализ.

terraform validate

3. terraform plan

"План действий"

Самая важная команда для безопасности. Она сравнивает ваш код с реальным состоянием облака и показывает, что произойдет, если вы примените изменения. * + (зеленый): будет добавлено. * ~ (желтый): будет изменено. * - (красный): будет удалено.

terraform plan

4. terraform apply

"Применение"

Выполняет действия, запланированные на предыдущем шаге. Создает, меняет или удаляет реальные ресурсы в облаке Nubes. * Всегда запрашивает подтверждение yes перед стартом (если не указан флаг -auto-approve).

terraform apply

5. terraform destroy

"Уничтожение"

Удаляет все ресурсы, описанные в текущей конфигурации Terraform. Используйте осторожно, чтобы очистить тестовое окружение. * Также требует подтверждения yes.

terraform destroy

Дополнительные полезные команды

  • terraform fmt: Автоматически форматирует ваш код (расставляет отступы), делая его красивым и аккуратным.
  • terraform output: Выводит значения "outputs", если вы их определили (например, IP-адреса созданных серверов).
  • terraform state list: Показывает список ресурсов, про которые "знает" терраформ в данный момент.

Когда использовать terraform state rm

terraform state rm удаляет ресурс только из Terraform state, но не удаляет его в облаке.

Используйте эту команду, когда: * ресурс уже удалён в облаке вручную/вне Terraform; * plan падает ошибкой вида "экземпляр ... удален"; * нужно заставить Terraform считать ресурс новым и создать его заново на следующем apply.

Пример:

terraform state rm nubes_postgres.db2
terraform plan
terraform apply

Отличие от terraform import

  • terraform state rm — "забыть" ресурс в state.
  • terraform import — "подхватить" уже существующий ресурс в state.

Если ресурс в облаке действительно удалён, обычно нужен именно state rm, а не import.


Совет

Всегда выполняйте terraform plan перед apply, чтобы убедиться, что вы случайно не удаляете важные ресурсы.