CertMaster

🏗️ Terraform Language (HCL)

Providers, Resources, Variables, Outputs, Locals, Data Sources

Terraform Associate · TF-Associate · ⏱️ 28 min · ❓ 6 savol

📦 Providers

Provider — cloud yoki xizmat bilan API orqali ishlaydi. Terraform Registry'dan yuklanadi. required_providers block. Provider versioning: `~> 5.0` (minor va patch update). Multiple provider instances — alias.

🏗️ Resources

Infratuzilma komponenti. `resource "TYPE" "NAME"`. Resource TYPE — `provider_resourcetype` formatida. Resource da'volar: meta-arguments: `depends_on`, `count`, `for_each`, `provider`, `lifecycle`.

📝 Variables, Outputs, Locals

Input Variables: `var.name`, `variable` block, type, default, validation. Output Values: boshqa module/root module ga qiymat qaytarish. Locals: modul ichida expression cache (local.name). Variable precedence: env var > .tfvars > default.

🔍 Data Sources

`data` block — mavjud infratuzilmani o'qish (Terraform yaratmagan). Masalan: mavjud VPC ID ni olish, latest AMI ID. `data.TYPE.NAME.attribute` orqali murojaat.
💡 Asosiy nuqtalar
📋 Kod misoli
# Provider konfiguratsiya
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region = var.region
}

# Variable
variable "region" {
  type        = string
  description = "AWS Region"
  default     = "us-east-1"
}

variable "instance_count" {
  type    = number
  default = 2
}

# Resource (with for_each)
resource "aws_instance" "web" {
  count         = var.instance_count
  ami           = data.aws_ami.ubuntu.id
  instance_type = "t3.micro"
  tags = {
    Name = "web-${count.index}"
    Env  = local.env
  }
}

# Locals
locals {
  env = "production"
}

# Data source
data "aws_ami" "ubuntu" {
  most_recent = true
  filter {
    name   = "name"
    values = ["ubuntu/images/hvm-ssd/ubuntu-*-22.04-amd64-*"]
  }
  owners = ["099720109477"] # Canonical
}

# Output
output "instance_ips" {
  value = aws_instance.web[*].public_ip
}
🎯 Imtihon maslahatlari
⚠️ Ko'p adashadigan
🧠 Eslab qolish: "VROLED" = Variables (input), Resources, Outputs, Locals, External-data (data sources), Dependencies — HCL asosiy bloklar

Terraform Language (HCL) bo'yicha o'zingizni sinab ko'ring

Bepul interaktiv quiz, mock imtihon va to'liq darslar — CertMaster platformasida.

Bepul boshlash →