linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
Intro
Lessons
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • База знаний
  • Шпаргалка
  • Capstone
  • Собеседование
home/terraform/kb/Модули

kb/modules

Модули Terraform: написание, источники, версионирование

Модуль, переиспользуемый кусок HCL с контрактом из input variables и output values. Источники (local, git, registry, archive, S3), версионные ограничения, композиция модулей, передача провайдеров, всё что нужно чтобы превратить копипасту в библиотеку инфраструктуры.

  • tf-module-sourcesИсточники модулей: local, git, registry, archive, S3

    `source` определяет откуда terraform берёт код модуля. Пять основных типов: локальный путь (`./modules/x`), git-репо (`git::https://...`), Terraform Registry (`hashicorp/consul/aws`), архив (`https://.../v1.0.zip`), S3-объект (`s3::https://...`). Local, для своего репо. Registry, для публичных модулей. Git, для приватных.

  • tf-module-compositionКомпозиция модулей: module of modules, передача провайдеров

    Модуль может вызывать другие модули, внутри своего main.tf через тот же `module` блок. Адрес в state становится `module.A.module.B.<тип>.<имя>`. Провайдеры наследуются по умолчанию, но при нескольких alias'ах (multi-region, multi-account): передаются явно через `providers = { aws = aws.eu }`. `for_each` над модулем работает с TF 0.13+.

  • tf-module-inputs-outputsКонтракт модуля: input variables и outputs

    Снаружи модуль виден только через input variables (что принимает) и output values (что отдаёт). Всё остальное, детали реализации. Хороший модуль скрывает ресурсы за этим контрактом так, чтобы можно было переписать тело без изменения вызовов в root-модуле.

Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки