DevOps Bootcamp · Урок

`validate` и `fmt` в Terraform

Используйте встроенные команды Terraform, такие как `validate` для проверки синтаксиса конфигурации и `fmt` для единообразного форматирования кода.

Урок 1 из 411 шагов

«`validate` и `fmt` в Terraform» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Качество кода для инфраструктуры как кода

Хороший код — это не только функциональность, но и понятность и корректность. Для инфраструктуры как кода (IaC) это ещё важнее, поскольку ошибки могут привести к дорогостоящим проблемам с инфраструктурой.

Terraform предоставляет встроенные инструменты: validate и fmt. Они обеспечивают синтаксическую корректность и единообразное форматирование конфигураций.

Раннее обнаружение ошибок

Команда terraform validate проверяет файлы конфигурации на наличие синтаксических ошибок и внутреннюю согласованность. Она гарантирует структурную корректность кода до попытки его применения.

Проверяются, в частности, типы переменных, аргументы ресурсов и конфигурации провайдеров. Это быстрый способ обнаружить ошибки без взаимодействия с Вашим облачным провайдером.

Корректная конфигурация

Рассмотрим простую корректную конфигурацию Terraform. Этот код объявляет сегмент AWS S3.

Выполнение terraform validate для неё завершится успешно, что указывает на отсутствие синтаксических и базовых конфигурационных проблем.

resource "aws_s3_bucket" "my_bucket" {
  bucket = "my-unique-coddykit-bucket-123"
  acl    = "private"

  tags = {
    Environment = "Dev"
    Project     = "CoddyKit"
  }
}

Обнаружение опечатки

Что произойдёт, если мы допустим ошибку? Здесь аргумент acl написан с опечаткой — accl.

terraform validate немедленно укажет на эту ошибку и сообщит, что accl не является распознаваемым аргументом ресурса сегмента S3.

resource "aws_s3_bucket" "my_bucket" {
  bucket = "my-unique-coddykit-bucket-456"
  accl   = "private" # Intentional typo!

  tags = {
    Environment = "Dev"
  }
}

Как использовать `validate`

Чтобы проверить конфигурацию, перейдите в терминале в каталог, содержащий Ваши файлы .tf. Затем просто выполните:

terraform validate

Команда выполняет проверки в текущем рабочем каталоге. Если проверка проходит успешно, команда завершает работу без вывода, сообщая об успехе. При ошибке она выводит понятные сообщения об ошибках.

Единообразие превыше всего

Работали ли Вы когда-нибудь в команде, где каждый форматирует код по-своему? Такой код может быть трудным для чтения и сопровождения. Команда terraform fmt (форматирование) решает эту проблему!

Она автоматически переписывает файлы конфигурации Terraform в каноническом формате и стиле. Это обеспечивает единообразие во всей кодовой базе и у всей команды.

Неформатированный код

Посмотрите на эту конфигурацию. Отступы в ней непоследовательны, а интервалы заданы неправильно. Она корректна, но её трудно быстро просмотреть.

Такое форматирование легко возникает, когда несколько человек работают с одними и теми же файлами.

resource "aws_s3_bucket" "another_bucket" {
    bucket = "coddykit-unformatted-bucket"
        acl = "private"
      tags = {
          Project = "CoddyKit"
        Env = "Test"
      }
}

Безупречно отформатированный код

Теперь представьте, что Вы выполняете terraform fmt для предыдущего кода. Команда автоматически скорректирует интервалы и отступы в соответствии со стандартным стилем Terraform.

Код станет гораздо чище и удобнее для чтения. Это небольшое изменение, которое существенно улучшает совместную работу!

resource "aws_s3_bucket" "another_bucket" {
  bucket = "coddykit-unformatted-bucket"
  acl    = "private"
  tags = {
    Project = "CoddyKit"
    Env     = "Test"
  }
}

fmt для команд

Чтобы отформатировать файлы, выполните terraform fmt в каталоге конфигурации. Команда изменяет файлы непосредственно на месте.

Для конвейеров CI/CD можно использовать terraform fmt -check=true, чтобы проверить, отформатированы ли файлы правильно, не изменяя их. Или -diff, чтобы просмотреть предлагаемые изменения.

Проверьте свои знания

Какие из следующих утверждений о terraform validate и terraform fmt верны?

Проверяйте и форматируйте свой код!

На этом уроке Вы узнали о двух важных командах Terraform:

  • terraform validate: Проверяет синтаксическую корректность и внутреннюю согласованность конфигурации, помогая рано обнаруживать ошибки.
  • terraform fmt: Автоматически форматирует код в едином стиле, улучшая читаемость и совместную работу.

Регулярное использование этих инструментов помогает поддерживать качественную, безошибочную и понятную инфраструктуру как код. Далее мы рассмотрим более продвинутые стратегии тестирования!

Можно начать бесплатно

Изучай DevOps Bootcamp с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
142
Уроки
568

Часто задаваемые вопросы

Урок «`validate` и `fmt` в Terraform» бесплатный?

Да — полный текст урока «`validate` и `fmt` в Terraform» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «`validate` и `fmt` в Terraform»?

Используйте встроенные команды Terraform, такие как `validate` для проверки синтаксиса конфигурации и `fmt` для единообразного форматирования кода. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «`validate` и `fmt` в Terraform»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. `validate` и `fmt` в Terraform
  2. Модульное тестирование с Terratest
  3. Интеграционное тестирование облачных ресурсов
  4. Политика как код и проверки соответствия требованиям
← Назад к DevOps Bootcamp