4.7 KiB
Справочник по 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.
!!! tip "Совет"
Всегда выполняйте terraform plan перед apply, чтобы убедиться, что вы случайно не удаляете важные ресурсы.