جدول محتوایی

Terraform ابزار قدرتمند مدیریت زیرساخت

Terraform ابزار قدرتمند مدیریت زیرساخت است که توسط HashiCorp توسعه داده شده و به شما امکان می‌دهد زیرساخت‌های خود را با استفاده از کد تعریف، مدیریت و به‌روزرسانی کنید. این ابزار از پروایدرهای مختلف ابری (مانند AWS، Azure، GCP) و حتی پلتفرم‌های محلی (مانند VMware, Docker) پشتیبانی می‌کند.

خرید سرور های اختصاصی از ایرانیکا سرور

چرا Terraform

مدیریت آسان زیرساخت: به جای تنظیم دستی سرورها و سرویس‌ها، همه چیز را با کد تعریف می‌کنید.

تکرارپذیری (Reproducibility): زیرساخت شما همیشه یکسان و قابل پیاده‌سازی مجدد است.

همکاری بهتر تیم‌ها : کد Terraform را می‌توان در Git ذخیره کرد و تغییرات را ردیابی نمود.

پشتیبانی از چندین پلتفرم: یک ابزار برای مدیریت تمام محیط‌های ابری و داخلی.

انواع کارهای Terraform با مثال

ساخت و ایجاد منابع ساده ابری (مثل AWS)

مثال: ایجاد یک سرور مجازی (EC2) در AWS

hcl
provider "aws" {
  region = "us-east-1"
}

resource "aws_instance" "web_server" {
  ami           = "ami-0c55b159cbfafe1f0"  # Amazon Linux 2
  instance_type = "t2.micro"
  tags = {
    Name = "My-Web-Server"
  }
}

پس از اجرای terraform apply، یک سرور EC2 در AWS ایجاد می‌شود.

مدیریت شبکه و امنیت

مثال: ایجاد VPC، Subnet و Security Group در AWS

hcl
resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
}

resource "aws_subnet" "public" {
  vpc_id     = aws_vpc.main.id
  cidr_block = "10.0.1.0/24"
}

resource "aws_security_group" "allow_http" {
  name        = "allow_http"
  description = "Allow HTTP traffic"
  vpc_id      = aws_vpc.main.id

  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

با این کد، یک شبکه خصوصی و قوانین فایروال تعریف می‌شود.

مدیریت ذخیره‌سازی و دیتابیس

مثال: ایجاد یک دیتابیس RDS در AWS

hcl
resource "aws_db_instance" "mysql_db" {
  allocated_storage    = 20
  engine               = "mysql"
  engine_version       = "5.7"
  instance_class       = "db.t2.micro"
  name                 = "mydatabase"
  username             = "admin"
  password             = "securepassword123"
  parameter_group_name = "default.mysql5.7"
  skip_final_snapshot  = true
}

این کد یک دیتابیس MySQL در AWS RDS ایجاد می‌کند.

استقرار برنامه‌های کانتینری (Docker, Kubernetes)

مثال: راه‌اندازی یک کانتینر Docker با Terraform

hcl
provider "docker" {}

resource "docker_container" "nginx" {
  name  = "nginx-server"
  image = "nginx:latest"
  ports {
    internal = 80
    external = 8080
  }
}

این کد یک کانتینر Nginx را روی پورت 8080 اجرا می‌کند.

مدیریت چندین محیط (Dev, Staging, Production)

با استفاده از Workspace یا ماژول‌ها می‌توان محیط‌های مختلف را مدیریت کرد.
مثال:

hcl
locals {
  env = terraform.workspace == "prod" ? "production" : "development"
}

resource "aws_instance" "server" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = local.env == "production" ? "t2.large" : "t2.micro"
}

اگر Workspace روی prod باشد، یک سرور بزرگتر ساخته می‌شود.

خودکارسازی با CI/CD (مثل GitLab CI, GitHub Actions)

مثال: اجرای خودکار Terraform در GitHub Actions

name: 'Terraform Plan'
on: [push]

jobs:
  terraform:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: hashicorp/setup-terraform@v1
      - run: terraform init
      - run: terraform plan

با هر Push به گیت‌هاب، تغییرات Terraform بررسی می‌شوند.

مزایای Terraform نسبت به ابزارهای مشابه (مثل Ansible, CloudFormation)

چند-پلتفرمی : پشتیبانی از AWS، Azure، GCP، Kubernetes و غیره.
حالت Declarative : شما فقط نتیجه نهایی را تعریف می‌کنید، نه مراحل اجرا.
State Management : وضعیت زیرساخت را در فایل terraform.tfstate ذخیره می‌کند.
ماژولار بودن : می‌توانید کدها را ماژولار بنویسید و دوباره استفاده کنید.

Terraform یک ابزار قوی و انعطاف‌پذیر برای مدیریت زیرساخت به صورت کد است. چه بخواهید یک سرور ساده ایجاد کنید یا یک زیرساخت پیچیده چند ابری، Terraform می‌تواند به شما کمک کند

آشنایی با Ansible: ابزاری قدرتمند برای مدیریت خودکار شبکه‌ها

5رای - امتیاز 5 ممنون از امتیازی که دادید..!