مادون قرمز خود را با پشته های تراموی ساده کنید

Terragrunt ، ابزار مدیریت پیکربندی Terraform ، اخیراً عملکرد عمده ای را معرفی کرده است: پشته ها. این تازگی با هدف ساده سازی و بهینه سازی مدیریت زیرساخت ها با کاهش تکرار و بهبود سازمان تنظیمات انجام می شود. در این مقاله ، ما این عملکرد را با جزئیات بررسی خواهیم کرد و ضمن ارائه اطلاعات عمیق برای متخصصان ، آن را برای مبتدیان در دسترس قرار می دهیم.
پشته در ترامپ چیست؟
در زمینه ترام پشته مجموعه ای از واحدها است که با هم مدیریت می شوند. این می تواند یک محیط کامل را نشان دهد ، مانند سحر کردنبا مرحله بندی یا گند، یا یک پروژه کامل پشته ها امکان مدیریت پیچیدگی مرتبط با مدیریت چندین واحد را از طریق محیط های مختلف امکان پذیر می کنند.
چرا پشته؟
قبل از معرفی پشته ها ، کاربران Terragrunt مجبور بودند تعداد زیادی از پرونده ها را مدیریت کنند terragrunt.hcl
که منجر به افزایش تکرار و پیچیدگی شد. پشته ها انتزاعی را در بالای این پرونده ها ارائه می دهند ، و این امکان را فراهم می آورد که چندین واحد را در یک پیکربندی واحد مدیریت و مدیریت کنید. این روش افزونگی را کاهش داده و حفظ تنظیمات را تسهیل می کند.
ویژگی های کلیدی پشته ها
پرونده terragrunt.stack.hcl
پرونده terragrunt.stack.hcl
در قلب این ویژگی جدید است. این به عنوان میانبر برای تعریف یک پشته ، مشابه روشی که واحدها می توانند مستقیماً در یک پوشه تعریف شوند ، خدمت می کند. این پرونده به شما امکان می دهد پیکربندی چندین واحد را متمرکز کنید ، بنابراین مدیریت و خوانایی را ساده می کنید.
جبهه unit
در پرونده terragrunt.stack.hcl
، بلوک unit
برای تعریف واحد استقرار استفاده می شود. هر واحد نمایانگر یک مؤلفه زیرساخت مجزا است که به عنوان بخشی از پشته مستقر می شود. بلوک unit
چندین آرگومان را پشتیبانی می کند و امکان پیکربندی دقیق و انعطاف پذیر هر مؤلفه را فراهم می کند.
ترتیب terragrunt stack output
Terragrunt دستور را معرفی می کند terragrunt stack output
، که به کاربران امکان می دهد با چندین واحد در یک پشته ، بازیابی و تعامل برقرار کنند. این عملکرد با ادغام آنها در یک دیدگاه منحصر به فرد ، مدیریت خروج از زیرساخت ها را ساده می کند.
مزایای پشته ها
-
کاهش تمرین : با تثبیت تنظیمات ، پشته ها تکثیر کد را کاهش می دهند و تنظیمات را تمیز تر و آسان تر می کنند.
-
مدیریت ساده ساختاری : پشته ها این امکان را فراهم می آورد که وابستگی های بین واحدها را به وضوح تعریف کنید ، و اطمینان حاصل کنید که اجزای زیرساختی به ترتیب مناسب مستقر شده اند.
-
تجسم بهبود یافته : با پشته ها ، تجسم و درک ساختار و روابط موجود در زیرساخت ها آسان تر است ، که برنامه ریزی و عیب یابی را تسهیل می کند.
ملاحظات فعلی
اگرچه پشته ها مزایای بسیاری را ارائه می دهند ، توجه به این نکته حائز اهمیت است که این ویژگی هنوز در مرحله آزمایش است. برای تثبیت ، به ویژه باید جنبه های مختلفی مورد بحث قرار گیرد:
-
پشتیبانی فرمان پشته : کنترل دستورات را اضافه کنید
stack run *
برای گسترش عملیات در پشته ها. -
پشتیبانی از SORTIES STACK : سفارشات را ادغام کنید
stack output
برای بهبود تعامل با حوادث پشته. -
مقادیر پشته پشتیبانی : برای پیکربندی انعطاف پذیر ، مدیریت “مقادیر” را به پشته ها معرفی کنید.
-
پشتیبانی پشته بازگشتی : اجازه مدیریت پشته های تو در تو را برای معماری پیچیده تر زیرساخت ها.
-
تست های ادغام : برای اطمینان از مدیریت سیال پشته ها در سناریوهای مختلف عملیاتی ، در تست های عمق انجام دهید.
-
سازگاری با موازی سازی : سازگاری با شاخص های موازی ، به ویژه برای پشته هایی که دارای وابستگی هستند ، بررسی کنید.
نمونه کاربرد
در اینجا نمونه ای از پشته در Google Cloud Platform (GCP)بشر این پشته مدیریت خواهد کرد:
- وت VPC با زیر شبکه
- بوها موتور محاسبه نمونه (VM)
- بوها پایگاه داده ابر SQL
ساختار پروژه
ما پروژه را در سه ماژول Terraform سازماندهی خواهیم کرد:
gcp-stack/
│── modules/
│ │── vpc/
│ │ ├── main.tf
│ │ ├── variables.tf
│ │ ├── outputs.tf
│ │── compute/
│ │ ├── main.tf
│ │ ├── variables.tf
│ │ ├── outputs.tf
│ │── database/
│ ├── main.tf
│ ├── variables.tf
│ ├── outputs.tf
│── terragrunt.stack.hcl
│── terragrunt.hcl
1. تعریف پشته (terragrunt.stack.hcl
)
در خنجر، یک پشته در پرونده تعریف شده است terragrunt.stack.hcl
بشر در اینجا یک مثال آورده شده است:
# Activer la fonctionnalité expérimentale des stacks
experiments = ["stacks"]
stack "gcp-infra" {
description = "Infrastructure GCP avec VPC, VM et base de données"
unit "vpc" {
path = "./modules/vpc"
}
unit "compute" {
path = "./modules/compute"
dependencies = ["vpc"]
}
unit "database" {
path = "./modules/database"
dependencies = ["vpc"]
}
}
توضیح
- پشته LA “GCP-infra” سه جمع می کند واحد :
vpc
باcompute
باdatabase
- هر واحد یک ماژول Terraform را نشان می دهد
-
compute
ولایتdatabase
وابسته بودنvpc
، بنابراین آنها فقط بعد از آن مستقر خواهند شد
2. ترامون پیکربندی (terragrunt.hcl
)
این پرونده از تکرارها جلوگیری می کند و تنظیمات خاصی را متمرکز می کند:
terraform {
source = "${path_relative_to_include()}"
}
remote_state {
backend = "gcs"
config = {
bucket = "my-terraform-state-bucket"
prefix = "${path_relative_to_include()}"
}
}
inputs = {
project_id = "my-gcp-project"
region = "us-central1"
}
3. ماژول VPC (modules/vpc/main.tf
)
این ماژول ایجاد می کند VPC با زیر شبکه:
resource "google_compute_network" "vpc" {
name = "my-vpc"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "subnet" {
name = "my-subnet"
region = var.region
network = google_compute_network.vpc.id
ip_cidr_range = "10.0.0.0/24"
}
output "vpc_id" {
value = google_compute_network.vpc.id
}
output "subnet_id" {
value = google_compute_subnetwork.subnet.id
}
4. موتور محاسبه ماژول (modules/compute/main.tf
)
این ماژول را مستقر می کند VM که از VPC ایجاد شده استفاده می کند:
resource "google_compute_instance" "vm" {
name = "my-vm"
machine_type = "e2-medium"
zone = "${var.region}-a"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = var.vpc_id
subnetwork = var.subnet_id
}
}
output "vm_ip" {
value = google_compute_instance.vm.network_interface[0].network_ip
}
5. ماژول Cloud SQL (modules/database/main.tf
)
این ماژول ایجاد می کند پایگاه داده ابر SQL :
resource "google_sql_database_instance" "db" {
name = "my-database"
database_version = "MYSQL_8_0"
region = var.region
settings {
tier = "db-f1-micro"
ip_configuration {
private_network = var.vpc_id
}
}
}
output "db_instance" {
value = google_sql_database_instance.db.connection_name
}
6. استقرار پشته
با خنجر، امکان اجرای تمام واحدهای پشته به یک ترتیب وجود دارد:
terragrunt run-all apply
این سفارش:
- اول مستقر می کند VPC
- سپس آنجا VM و مجموعه پایگاه داده
- وابستگی ها را به طور خودکار مدیریت می کند
برای دیدن خروجی های کل پشته:
terragrunt stack output
در پشته ها در Terragrunt پیشنهاد a سازمان روشن ولایت مدیریت وابستگی خودکار بین ماژول ها در GCP ، آنها امکان استقرار یک زیرساخت کامل را فراهم می کنند به یک سفارش واحد، در حالی که پیکربندی را متمرکز می کنید.
پایان
معرفی پشته ها در Terragrunt نشان دهنده پیشرفت قابل توجهی برای مدیریت زیرساخت ها به عنوان یک کد است. با ارائه انتزاع بالاتر از تنظیمات موجود ، پشته ها مدیریت را ساده می کنند ، تکرار را کاهش می دهند و وضوح زیرساخت های پیچیده را بهبود می بخشند. اگرچه عملکرد هنوز در مرحله آزمایشی است ، اما در حال حاضر ابزارهای قدرتمندی را برای پزشکان ابر ، اعم از تازه کار و متخصص ارائه می دهد.
برای کسانی که مایل به کشف بیشتر این عملکرد هستند ، توصیه می شود با مستندات رسمی Terragrunt مشورت کنید و در بحث های جامعه شرکت کنید تا از تحولات آینده مطلع شوید.
منابع