CertMaster

🏗️ Terraform Modules

Структура модулей, Registry, переиспользуемые компоненты

Terraform Associate · TF-Associate · ⏱️ 20 min · ❓ 5 вопр.

📦 Что такое Module?

Набор Terraform-файлов — переиспользуемый компонент инфраструктуры. Root module — основная рабочая директория. Child module — вызывается через блок `module`. Published modules: Terraform Registry (registry.terraform.io).

🏗️ Структура Module

main.tf — основные ресурсы. variables.tf — входные переменные. outputs.tf — выходные значения. versions.tf — required_providers. README.md — документация. Это стандартная структура.

📡 Источники Module

Локальный путь: `"./modules/vpc"`. Terraform Registry: `"hashicorp/consul/aws"`. GitHub: `"github.com/org/repo//modules/vpc"`. S3: `"s3::https://..."`. Версионирование модулей: `version = "~> 3.0"` (для модулей из Registry).

🔄 Лучшие практики Module

💡 Ключевые моменты
📋 Пример кода
# Module chaqirish
module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "~> 5.0"

  name = "my-vpc"
  cidr = "10.0.0.0/16"
  azs  = ["us-east-1a", "us-east-1b"]
  private_subnets = ["10.0.1.0/24", "10.0.2.0/24"]
  public_subnets  = ["10.0.101.0/24", "10.0.102.0/24"]
  enable_nat_gateway = true
}

# Module outputidan foydalanish
resource "aws_instance" "app" {
  subnet_id = module.vpc.private_subnets[0]
  # ...
}

# Local module
module "database" {
  source = "./modules/rds"
  db_name     = "myapp"
  vpc_id      = module.vpc.vpc_id
  subnet_ids  = module.vpc.private_subnets
}
🎯 Советы для экзамена
⚠️ Частые ошибки
🧠 Для запоминания: "Module = Lego Block": переиспользуется, можно комбинировать, стандартный интерфейс (variables + outputs). "MOVE = Main, Outputs, Variables, Existing-data (data.tf)"

Проверьте себя по теме «Terraform Modules»

Бесплатные интерактивные тесты, пробный экзамен и полные уроки — на платформе CertMaster.

Начать бесплатно →