0Pricing
DevOps Bootcamp · Урок

Публикация модулей в реестре

Делитесь повторно используемыми модулями Terraform между командами: версионируйте их в Git и публикуйте в общедоступном или частном реестре модулей.

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

За пределами локальных модулей

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

Источники модулей

Аргумент source определяет, откуда Terraform получает модуль. Доступны следующие варианты:

  • Локальный путь
  • Репозиторий Git
  • Публичный реестр Terraform
  • Приватный реестр в Terraform Cloud

Использование модуля из реестра

Модули из реестра используют формат namespace/name/provider. Всегда фиксируйте версию, чтобы сборки можно было воспроизводить.

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "5.1.2"

  name = "my-vpc"
  cidr = "10.0.0.0/16"
}

Соглашение об именовании репозиториев

Публичный реестр требует определённого имени репозитория: terraform-PROVIDER-NAME. Например, сетевой модуль для AWS должен находиться в репозитории с именем terraform-aws-network.

Стандартная структура модуля

Модуль, предназначенный для публикации, имеет предсказуемую структуру, чтобы реестр мог автоматически создать его документацию.

terraform-aws-network/
  main.tf
  variables.tf
  outputs.tf
  README.md
  examples/
    basic/main.tf

Документирование входных значений

У каждой переменной должны быть description и, желательно, type. Реестр автоматически преобразует их в таблицу документированных входных значений.

variable "cidr" {
  type        = string
  description = "The CIDR block for the VPC"
  default     = "10.0.0.0/16"
}

Управление версиями с помощью тегов Git

Реестр определяет версии модулей по тегам Git с семантическими версиями. Именно пометка выпуска тегом делает новую версию доступной пользователям.

git tag v1.0.0
git push origin v1.0.0

Фиксация источника Git напрямую

Можно не использовать реестр и указать репозиторий Git по URL, зафиксировав тег с помощью параметра запроса ref.

module "network" {
  source = "git::https://github.com/acme/terraform-aws-network.git?ref=v1.0.0"
  cidr   = "10.0.0.0/16"
}

Приватные реестры

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

Ограничения семантических версий

Используйте ограничения версий для безопасного обновления. Оператор ~> разрешает повышать версии исправлений и минорные версии, но не допускает несовместимые изменения мажорной версии.

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "~> 5.1"
}

Обновление версий модулей

После изменения ограничения версии выполните terraform init -upgrade, чтобы получить последнюю разрешённую версию и обновить файл блокировки.

terraform init -upgrade

Быстрая проверка

Проверьте, насколько хорошо Вы понимаете управление версиями модулей.

Итоги: совместное использование модулей

Вы научились публиковать модули и использовать их:

  • Правило именования репозиториев terraform-PROVIDER-NAME.
  • Стандартная структура с документированными входными и выходными значениями.
  • Версии в реестре определяются тегами Git.
  • Ограничения версий, такие как ~>, обеспечивают безопасное обновление.

Теперь Ваши повторно используемые модули могут служить основой для каждого проекта в организации.

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

Урок «Публикация модулей в реестре» бесплатный?

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

Чему я научусь в уроке «Публикация модулей в реестре»?

Делитесь повторно используемыми модулями Terraform между командами: версионируйте их в Git и публикуйте в общедоступном или частном реестре модулей. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

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

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

Сколько времени занимает урок «Публикация модулей в реестре»?

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

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

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

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

  1. Введение в модули Terraform
  2. Создание повторно используемых модулей
  3. Использование рабочих пространств для окружений
  4. Публикация модулей в реестре
← Назад к DevOps Bootcamp