Перейти к содержанию

CDNVideo Terraform Provider

Введение

Что такое Terraform?

Terraform - это инструмент для создания, изменения и версионирования инфраструктуры безопасным и эффективным способом. Terraform может управлять существующими и популярными поставщиками услуг, а также пользовательскими внутренними решениями.

Ключевые особенности Terraform:

  • Декларативный язык конфигурации
  • Планирование изменений перед применением
  • Управление зависимостями ресурсов
  • Поддержка множества облачных провайдеров

Что такое провайдер Terraform?

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

Зачем нужен CDNVideo Terraform Provider?

CDNVideo Terraform Provider позволяет управлять ресурсами кеширования с помощью Terraform. Это дает следующие преимущества:

  1. Автоматизация: управление CDN-ресурсами как кодом (Infrastructure as Code).
  2. Согласованность: обеспечение единообразного состояния инфраструктуры.
  3. Версионирование: отслеживание изменений в конфигурации CDN.
  4. Интеграция: легкое встраивание управления ресурсами в существующие процессы CI/CD.

Начало работы с CDNVideo Terraform Provider

Требования

  • Terraform версии 1.8 или новее
  • Учетная запись CDNVideo

Установка

  1. Установите Terraform, скачав его с официального сайта.

  2. (Опционально) Настройка зеркала Terraform

Если у вас нет доступа к официальному реестру Terraform (например, из-за ограничений VPN), вы можете настроить зеркало. Для этого создайте или отредактируйте файл ~/.terraformrc (для Linux/macOS) или %APPDATA%\terraform.rc (для Windows):

$ touch ~/.terraformrc  # Для Linux/macOS

Добавьте следующую конфигурацию в файл:

provider_installation {
  network_mirror {
    url = "https://terraform-mirror.yandexcloud.net/"
    include = ["registry.terraform.io/*/*"]
  }
  direct {
    exclude = ["registry.terraform.io/*/*"]
  }
}

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

  1. Создайте файл main.tf в вашем рабочем каталоге со следующим содержимым:
terraform {
  required_version = ">= 1.8"
  required_providers {
    cdnvideo = {
      source  = "opensource-cdnvideo/cdnvideo"
      version = "1.0.1"
    }
  }
}
  1. Выполните команду для инициализации рабочего каталога Terraform:
terraform init

Если вы настроили зеркало, Terraform будет использовать его для загрузки провайдера CDNVideo.

Настройка провайдера

Добавьте следующую конфигурацию в ваш файл Terraform:

provider "cdnvideo" {
  account_name = "ваше_имя_аккаунта"
  username     = "ваш_email@example.com"
  password     = "ваш_пароль"
}

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

Базовое использование

После настройки провайдера вы можете начать определять ресурсы CDNVideo в вашей конфигурации Terraform.

Пример:

resource "cdnvideo_resource" "example" {
  name   = "testname"
  origin = {
    servers = {
      "google.com" = {
        port      = 443
      }
}

Важные особенности и ограничения

Отсутствие функции импорта

Важно отметить, что в текущей версии CDNVideo Terraform Provider не реализована функция импорта существующих ресурсов. Это означает, что вы не сможете импортировать уже существующие ресурсы CDN в вашу конфигурацию Terraform.

Последовательность применения конфигурации

Если вы начали управлять вашей CDN-инфраструктурой с помощью CDNVideo Terraform Provider, настоятельно рекомендуется продолжать использовать этот метод для всех последующих изменений. Это обеспечит согласованность между вашей конфигурацией Terraform и реальным состоянием инфраструктуры.

Рекомендации:

  1. Всегда применяйте изменения через Terraform, используя команды terraform plan и terraform apply.
  2. Избегайте внесения изменений напрямую через веб-интерфейс или API CDNVideo, так как это может привести к расхождениям между состоянием, описанным в Terraform, и реальным состоянием ресурсов.
  3. Если необходимо внести изменения вне Terraform, обязательно отразите эти изменения в вашей конфигурации Terraform и выполните terraform apply для синхронизации состояния.

Дополнительная информация

  • Подробные примеры использования можно найти в каталоге examples/ репозитория провайдера.
  • Полная документация доступна в Terraform Registry.
  • При возникновении вопросов или проблем обратитесь в службу поддержки CDNVideo.