Перейти к основному содержимому

HTTP-бэкенд (Pro)

HTTP-бэкенд Semaphore UI для Terraform безопасно хранит файлы состояния Terraform и управляет ими непосредственно внутри Semaphore. Он доступен в плане Pro и даёт несколько ключевых преимуществ.

Возможности

  • Безопасное хранение состояния: файлы состояния надёжно хранятся внутри Semaphore.
  • Блокировка состояния: предотвращает одновременное изменение одного и того же файла состояния.
  • История версий: отслеживайте изменения состояния вашей инфраструктуры во времени.
  • Интеграция с интерфейсом: управляйте файлами состояния прямо из интерфейса Semaphore.

Настройка

Чтобы начать использовать встроенный HTTP-бэкенд, сначала нужно создать рабочее пространство для вашего шаблона задачи Terraform.

Чтобы добавить рабочее пространство, перейдите на вкладку Рабочие пространства вашего шаблона Terraform/OpenTofu.

При создании рабочего пространства вам будет предложено выбрать SSH-ключ для клонирования приватных модулей, используемых в вашем Terraform-коде. Если вы не используете приватные модули, просто выберите вариант None.

Использование HTTP-бэкенда в задачах

Чтобы использовать встроенный HTTP-бэкенд для хранения состояния ваших задач Terraform, не нужно вручную настраивать бэкенд в Terraform-коде. Semaphore может автоматически создать файл конфигурации во время выполнения. Для этого просто включите опцию Переопределить настройки бэкенда в настройках шаблона задачи, как показано на скриншоте ниже.

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

Использование HTTP-бэкенда вне Semaphore

Встроенный HTTP-бэкенд можно использовать не только при запуске задач внутри Semaphore, но и при выполнении Terraform-кода вне Semaphore, например из локального терминала.

Для этого Semaphore позволяет создавать алиасы (уникальные HTTP-эндпоинты) для вашего хранилища состояния. Такие алиасы упрощают обращение к файлам состояния из внешних окружений.

Чтобы настроить это, перейдите на вкладку Рабочие пространства, выберите нужное рабочее пространство и добавьте алиас. Также потребуется выбрать ключ с именем пользователя и паролем, который будет использоваться для аутентификации при доступе к бэкенду.

После этого нужно добавить настройки бэкенда в ваш Terraform-код:

terraform {
backend "http" {
address = "http://localhost:3000/api/terraform/***"
username = "***"
password = "***"
}
}

Теперь Terraform будет использовать встроенный HTTP-бэкенд Semaphore даже при запуске из терминала:

terraform apply