برنامه نویسی

شروع کار با Terraform: سفر خود به زیرساخت ها به عنوان کد (قسمت 1)

سلام ، علاقه مندان به فن آوری! 👋 امروز ، من در حال شروع سریال در مورد سفر خود با Terraform و آنچه در طول راه آموخته ام ، شروع می کنم. اگر می خواهید بازی زیرساخت خود را به سطح خود برسانید ، در جای مناسب قرار دارید!

چرا Terraform؟ 🤔

قبل از شیرجه رفتن ، بیایید به فیل موجود در اتاق بپردازیم – با گزینه هایی مانند CloudFormation (CFT) و AWS CDK در آنجا ، چرا Terraform را انتخاب می کنیم؟ خوب ، این نکته وجود دارد: در حالی که CFT با YAML/JSON و CDK کار می کند به شما امکان می دهد از TypeScript/Python استفاده کنید ، Terraform چیز خاصی را ارائه می دهد – یک رویکرد جهانی که در ارائه دهندگان مختلف ابر کار می کند.

آن را به عنوان زیرساخت خود چاقوی ارتش سوئیس فکر کنید! 🔧 با استفاده از زبان پیکربندی Hashicorp (HCL) ، Terraform با ارائه دهندگان ابر از طریق API خود ارتباط برقرار می کند و آن را به ابزاری قدرتمند برای مدیریت زیرساخت ها به عنوان کد تبدیل می کند.

دست خود را کثیف کنید: گردش کار اصلی

بگذارید دستورات اساسی را که روزانه از آنها استفاده می کنید را تجزیه کنم:

# 1. Initialize your project
terraform init    # Similar to 'cdk bootstrap'

# 2. Preview changes
terraform plan    # Like 'cdk synth'

# 3. Apply changes
terraform apply   # Equivalent to 'cdk deploy'

# 4. Clean up
terraform destroy # Same as 'cdk destroy'
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اولین پیکربندی Terraform شما

بیایید یک مثال ساده ایجاد کنیم. در اینجا چگونه شما است main.tf ممکن است به نظر برسد:

# Define the provider
provider "aws" {
  region = "us-east-1"
}

# Create an S3 bucket
resource "aws_s3_bucket" "my_first_bucket" {
  bucket = "my-terraform-bucket-2025"

  tags = {
    Environment = "Dev"
    Project     = "Learning Terraform"
  }
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ابرقدرت های چند منظوره و چند ابر

یکی از جالب ترین چیزها در مورد Terraform نحوه برخورد با چندین منطقه و ارائه دهندگان ابر است. این را بررسی کنید:

# Multiple regions in AWS
provider "aws" {
  region = "us-east-1"
  alias  = "east"
}

provider "aws" {
  region = "us-west-2"
  alias  = "west"
}

# Create EC2 instances in different regions
resource "aws_instance" "east_server" {
  provider      = aws.east
  ami           = "ami-12345678"
  instance_type = "t2.micro"
}

resource "aws_instance" "west_server" {
  provider      = aws.west
  ami           = "ami-87654321"
  instance_type = "t2.micro"
}

# Want to go multi-cloud? Here's how:
provider "aws" {
  region = "us-east-1"
}

provider "azurerm" {
  features {}
}

# Now you can create resources in both clouds!
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

متغیرها: ساخت کد خود را انعطاف پذیر

هیچ کس ارزشهای سخت کد را دوست ندارد! در اینجا نحوه استفاده مجدد کد خود در اینجا آورده شده است:

# variables.tf
variable "instance_type" {
  type        = string
  default     = "t2.micro"
  description = "The type of EC2 instance to launch"
}

variable "environment" {
  type    = string
  default = "dev"
}

# main.tf
resource "aws_instance" "server" {
  instance_type = var.instance_type

  tags = {
    Environment = var.environment
  }
}

# terraform.tfvars
instance_type = "t2.small"
environment   = "staging"
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در حال آمدن بعدی! 🎯

در پست بعدی ، ما به برخی مباحث واقعاً هیجان انگیز شیرجه خواهیم زد:

  • مدیریت دولت (قلب Terraform! ❤)
  • باکتری های از راه دور با S3
  • قفل کردن پرونده ها با DynamoDB
  • بحث ابدی: داده های کاربر در مقابل تأمین کنندگان

همچنین برخی از نمونه های دنیای واقعی و مشکلات رایج را برای جلوگیری از آن به اشتراک می گذارم. به من اعتماد کن ، شما نمی خواهید آن راه سخت را مثل من یاد بگیرید! 😅

نکات سریع قبل از رفتن

  1. همیشه دویدن terraform plan پیش از apply
  2. برای منابع خود از اسامی معنی دار استفاده کنید
  3. نسخه های ارائه دهنده خود را قفل نگه دارید
  4. با تنظیمات کوچک شروع کنید و بسازید

اگر سوالی دارید یا اگر چیز خاصی وجود دارد ، می خواهید در پست بعدی بپوشانم ، نظر زیر را رها کنید! کد نویسی زیرساخت مبارک! 🚀

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا