🌍 دستورات Terraform: از مبتدی تا پیشرفته برای مهندسان DevOps

Summarize this content to 400 words in Persian Lang
معرفی
Terraform هست یک زیرساخت منبع باز به عنوان ابزار کد (IaC). خلق شده توسط HashiCorpکه به شما امکان می دهد زیرساخت مرکز داده را با استفاده از یک زبان پیکربندی سطح بالا تعریف و تهیه کنید. چه به تازگی با Terraform شروع کرده باشید و چه به دنبال بهبود مهارت های خود باشید، این راهنما دستورات ضروری و بهترین شیوه ها را پوشش می دهد. سطوح مبتدی تا پیشرفته
🎯 مفاهیم کلیدی
قبل از فرو رفتن در دستورات، اجازه دهید برخی از مفاهیم اساسی Terraform را مرور کنیم:
ارائه دهنده: افزونه ای که Terraform را قادر می سازد با API های ارائه دهندگان ابری تعامل داشته باشد.
منبع: جزء زیرساخت شما، مانند ماشین مجازی، کانتینر یا شبکه.
مدول: ظرفی برای چندین منبع که با هم استفاده می شوند.
حالت: وضعیت فعلی زیرساخت شما که توسط Terraform مدیریت می شود.
🏁 دستورات مبتدی
1. مقداردهی اولیه
راه اندازی دایرکتوری کاری
terraform init
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
دایرکتوری کاری حاوی فایل های پیکربندی Terraform را راه اندازی می کند. این دستور ارائه دهنده های لازم را دانلود و نصب می کند.
2. اعتبار سنجی
اعتبار سنجی فایل های پیکربندی
terraform validate
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
نحو و پیکربندی فایلهای Terraform در فهرست را تأیید میکند.
3. برنامه ریزی کنید
یک برنامه اجرایی ایجاد کنید
terraform plan
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
یک طرح اجرایی ایجاد می کند که نشان می دهد Terraform چه اقداماتی را برای رسیدن به وضعیت مطلوب انجام می دهد.
4. درخواست کنید
اعمال تغییرات در زیرساخت
terraform apply
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
تغییرات مورد نیاز برای رسیدن به وضعیت مطلوب پیکربندی را اعمال می کند. این دستور قبل از ادامه، تأیید را درخواست می کند.
5. نابود کردن
زیرساخت ها را نابود کنید
terraform destroy
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
زیرساخت های تحت مدیریت Terraform را نابود می کند. این دستور همچنین درخواست تایید می کند.
6. مدیریت دولتی
نمایش وضعیت فعلی
terraform show
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
وضعیت فعلی یا یک فایل طرح را نمایش می دهد.
7. ارائه دهندگان
ارائه دهندگان لیست
terraform providers
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
تمام ارائه دهندگان مورد نیاز پیکربندی را فهرست می کند.
8. قالب بندی
فرمت فایل های پیکربندی
terraform fmt
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
فایل های پیکربندی Terraform را به قالب و سبک متعارف قالب بندی می کند.
9. خروجی
نمایش خروجی ها
terraform output
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
متغیرهای خروجی تعریف شده در پیکربندی را فهرست می کند.
10. مدیریت فضای کاری
فهرست فضاهای کاری
terraform workspace list
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
تمام فضاهای کاری موجود را فهرست می کند.
ایجاد فضای کاری
terraform workspace new my-workspace
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
یک فضای کاری جدید ایجاد می کند.
Workspace را انتخاب کنید
terraform workspace select my-workspace
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
یک فضای کاری موجود را انتخاب می کند.
🚀 دستورات میانی
1. مدیریت دولتی
فهرست منابع در ایالت
terraform state list
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
تمام منابع موجود در حالت Terraform را فهرست می کند.
نمایش منبع دولتی
terraform state show
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اطلاعات دقیق وضعیت یک منبع را نمایش می دهد.
حذف منبع از State
terraform state rm
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
یک منبع را از حالت Terraform حذف می کند.
انتقال منابع دولتی
terraform state mv source>
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
یک منبع را از یک حالت به حالت دیگر منتقل می کند.
2. نمودار وابستگی
ایجاد نمودار وابستگی
terraform graph | dot -Tpng > graph.png
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
یک نمایش بصری از نمودار وابستگی پیکربندی ایجاد می کند.
3. قفل کردن
حالت باز کردن قفل اجباری
terraform force-unlock
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
فایل حالت را به صورت دستی باز می کند.
4. متغیرهای محیطی
تنظیم متغیرهای محیطی
export TF_VAR_variable_name=value
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
متغیرهای محیطی را برای متغیرهای Terraform تنظیم می کند.
5. پیکربندی Backend
پیکربندی Backend
terraform {
backend “s3” {
bucket = “my-terraform-state”
key = “path/to/my/key”
region = “us-west-2”
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
یک باطن را برای ذخیره فایل حالت پیکربندی می کند.
6. ماژول ها
ماژول ها را راه اندازی کنید
terraform get
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
ماژول های مورد استفاده در پیکربندی را راه اندازی می کند.
به روز رسانی ماژول ها
terraform get -update
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
ماژول های مورد استفاده در پیکربندی را به روز می کند.
🧠 دستورات پیشرفته
1. برنامه ریزی دقیق
برنامه تولید و ذخیره کنید
terraform plan -out=myplan.tfplan
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
یک برنامه اجرایی را تولید و در یک فایل ذخیره می کند.
برنامه ذخیره شده را اعمال کنید
terraform apply myplan.tfplan
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
تغییرات توصیف شده توسط طرح ذخیره شده را اعمال می کند.
2. واردات
واردات زیرساخت های موجود
terraform import .
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
زیرساخت های موجود را به ایالت Terraform وارد می کند.
3. فضاهای کاری برای محیط ها
ایجاد و استفاده از فضاهای کاری برای محیط های مختلف
terraform workspace new dev
terraform workspace new prod
terraform workspace select dev
terraform workspace select prod
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
ایجاد و جابجایی بین فضاهای کاری برای محیط های مختلف.
4. مدیریت دولتی پیشرفته
پشتیبان گیری از فایل حالت
cp terraform.tfstate terraform.tfstate.backup
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
به صورت دستی از فایل State نسخه پشتیبان تهیه می کند.
بازیابی فایل State
cp terraform.tfstate.backup terraform.tfstate
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
فایل حالت را از یک نسخه پشتیبان بازیابی می کند.
5. عبارات شرطی
از عبارات شرطی استفاده کنید
resource “aws_instance” “example” {
count = var.create_instance ? 1 : 0
ami = “ami-123456”
instance_type = “t2.micro”
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
از عبارات شرطی برای ایجاد منابع بر اساس مقادیر متغیر استفاده می کند.
6. منابع داده
از منابع داده استفاده کنید
data “aws_vpc” “selected” {
default = true
}
resource “aws_subnet” “example” {
vpc_id = data.aws_vpc.selected.id
cidr_block = “10.0.1.0/24”
availability_zone = “us-west-2a”
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
از منابع داده برای واکشی اطلاعات در مورد منابع موجود استفاده می کند.
7. اشکال زدایی
ثبت جزئیات را فعال کنید
export TF_LOG=DEBUG
terraform apply
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
ثبت جزئیات را برای اهداف اشکال زدایی فعال می کند.
وارد یک فایل شوید
export TF_LOG=DEBUG
export TF_LOG_PATH=./terraform.log
terraform apply
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اطلاعات اشکال زدایی را در یک فایل ثبت می کند.
📊 بهترین شیوه ها
از کنترل نسخه استفاده کنید
فایل های پیکربندی Terraform خود را در یک سیستم کنترل نسخه (به عنوان مثال، Git) ذخیره کنید تا تغییرات را پیگیری کنید و با اعضای تیم همکاری کنید.
کد خود را مدولار کنید
پیکربندی های Terraform خود را به ماژول های قابل استفاده مجدد برای ترویج استفاده مجدد از کد و مدیریت پیچیدگی تقسیم کنید.
مدیریت فایل های حالت ایمن
از پشتیبانهای راه دور برای ذخیره و مدیریت ایمن فایلهای حالت خود استفاده کنید و مطمئن شوید که بهطور تصادفی حذف یا اصلاح نشدهاند.
از متغیرها و خروجی ها استفاده کنید
از متغیرها برای پارامترسازی پیکربندی ها و خروجی ها برای استخراج اطلاعات مفید از پیکربندی های خود استفاده کنید.
پیاده سازی خطوط لوله CI/CD
Terraform را با خطوط لوله CI/CD ادغام کنید تا آزمایش و استقرار زیرساخت خود را خودکار کنید.
سیاست ها را اجرا کنید
از ابزارهایی مانند HashiCorp Sentinel یا Open Policy Agent (OPA) برای اجرای سیاست ها و اطمینان از انطباق با استانداردهای سازمان خود استفاده کنید.
🚀 نتیجه گیری
تسلط بر دستورات Terraform از سطوح مبتدی تا پیشرفته برای مهندسین DevOps برای مدیریت موثر و خودکارسازی زیرساخت ضروری است. این راهنمای جامع مرجع ارزشمندی برای پیمایش در محیط Terraform شما ارائه می دهد. با پیروی از بهترین شیوه ها و استفاده از این دستورات، می توانید از راه اندازی زیرساخت قوی و کارآمد اطمینان حاصل کنید.
ترافورمینگ مبارک! 🎉
به خاطر خواندن بلاگم از شما متشکرم …:)
© حق چاپ: ProDevOpsGuy
به ما بپیوندید انجمن تلگرام || برای اطلاعات بیشتر من را دنبال کنید محتوای DevOps
معرفی
Terraform هست یک زیرساخت منبع باز به عنوان ابزار کد (IaC). خلق شده توسط HashiCorpکه به شما امکان می دهد زیرساخت مرکز داده را با استفاده از یک زبان پیکربندی سطح بالا تعریف و تهیه کنید. چه به تازگی با Terraform شروع کرده باشید و چه به دنبال بهبود مهارت های خود باشید، این راهنما دستورات ضروری و بهترین شیوه ها را پوشش می دهد. سطوح مبتدی تا پیشرفته
🎯 مفاهیم کلیدی
قبل از فرو رفتن در دستورات، اجازه دهید برخی از مفاهیم اساسی Terraform را مرور کنیم:
- ارائه دهنده: افزونه ای که Terraform را قادر می سازد با API های ارائه دهندگان ابری تعامل داشته باشد.
- منبع: جزء زیرساخت شما، مانند ماشین مجازی، کانتینر یا شبکه.
- مدول: ظرفی برای چندین منبع که با هم استفاده می شوند.
- حالت: وضعیت فعلی زیرساخت شما که توسط Terraform مدیریت می شود.
🏁 دستورات مبتدی
1. مقداردهی اولیه
راه اندازی دایرکتوری کاری
terraform init
دایرکتوری کاری حاوی فایل های پیکربندی Terraform را راه اندازی می کند. این دستور ارائه دهنده های لازم را دانلود و نصب می کند.
2. اعتبار سنجی
اعتبار سنجی فایل های پیکربندی
terraform validate
نحو و پیکربندی فایلهای Terraform در فهرست را تأیید میکند.
3. برنامه ریزی کنید
یک برنامه اجرایی ایجاد کنید
terraform plan
یک طرح اجرایی ایجاد می کند که نشان می دهد Terraform چه اقداماتی را برای رسیدن به وضعیت مطلوب انجام می دهد.
4. درخواست کنید
اعمال تغییرات در زیرساخت
terraform apply
تغییرات مورد نیاز برای رسیدن به وضعیت مطلوب پیکربندی را اعمال می کند. این دستور قبل از ادامه، تأیید را درخواست می کند.
5. نابود کردن
زیرساخت ها را نابود کنید
terraform destroy
زیرساخت های تحت مدیریت Terraform را نابود می کند. این دستور همچنین درخواست تایید می کند.
6. مدیریت دولتی
نمایش وضعیت فعلی
terraform show
وضعیت فعلی یا یک فایل طرح را نمایش می دهد.
7. ارائه دهندگان
ارائه دهندگان لیست
terraform providers
تمام ارائه دهندگان مورد نیاز پیکربندی را فهرست می کند.
8. قالب بندی
فرمت فایل های پیکربندی
terraform fmt
فایل های پیکربندی Terraform را به قالب و سبک متعارف قالب بندی می کند.
9. خروجی
نمایش خروجی ها
terraform output
متغیرهای خروجی تعریف شده در پیکربندی را فهرست می کند.
10. مدیریت فضای کاری
فهرست فضاهای کاری
terraform workspace list
تمام فضاهای کاری موجود را فهرست می کند.
ایجاد فضای کاری
terraform workspace new my-workspace
یک فضای کاری جدید ایجاد می کند.
Workspace را انتخاب کنید
terraform workspace select my-workspace
یک فضای کاری موجود را انتخاب می کند.
🚀 دستورات میانی
1. مدیریت دولتی
فهرست منابع در ایالت
terraform state list
تمام منابع موجود در حالت Terraform را فهرست می کند.
نمایش منبع دولتی
terraform state show
اطلاعات دقیق وضعیت یک منبع را نمایش می دهد.
حذف منبع از State
terraform state rm
یک منبع را از حالت Terraform حذف می کند.
انتقال منابع دولتی
terraform state mv source>
یک منبع را از یک حالت به حالت دیگر منتقل می کند.
2. نمودار وابستگی
ایجاد نمودار وابستگی
terraform graph | dot -Tpng > graph.png
یک نمایش بصری از نمودار وابستگی پیکربندی ایجاد می کند.
3. قفل کردن
حالت باز کردن قفل اجباری
terraform force-unlock
فایل حالت را به صورت دستی باز می کند.
4. متغیرهای محیطی
تنظیم متغیرهای محیطی
export TF_VAR_variable_name=value
متغیرهای محیطی را برای متغیرهای Terraform تنظیم می کند.
5. پیکربندی Backend
پیکربندی Backend
terraform {
backend "s3" {
bucket = "my-terraform-state"
key = "path/to/my/key"
region = "us-west-2"
}
}
یک باطن را برای ذخیره فایل حالت پیکربندی می کند.
6. ماژول ها
ماژول ها را راه اندازی کنید
terraform get
ماژول های مورد استفاده در پیکربندی را راه اندازی می کند.
به روز رسانی ماژول ها
terraform get -update
ماژول های مورد استفاده در پیکربندی را به روز می کند.
🧠 دستورات پیشرفته
1. برنامه ریزی دقیق
برنامه تولید و ذخیره کنید
terraform plan -out=myplan.tfplan
یک برنامه اجرایی را تولید و در یک فایل ذخیره می کند.
برنامه ذخیره شده را اعمال کنید
terraform apply myplan.tfplan
تغییرات توصیف شده توسط طرح ذخیره شده را اعمال می کند.
2. واردات
واردات زیرساخت های موجود
terraform import .
زیرساخت های موجود را به ایالت Terraform وارد می کند.
3. فضاهای کاری برای محیط ها
ایجاد و استفاده از فضاهای کاری برای محیط های مختلف
terraform workspace new dev
terraform workspace new prod
terraform workspace select dev
terraform workspace select prod
ایجاد و جابجایی بین فضاهای کاری برای محیط های مختلف.
4. مدیریت دولتی پیشرفته
پشتیبان گیری از فایل حالت
cp terraform.tfstate terraform.tfstate.backup
به صورت دستی از فایل State نسخه پشتیبان تهیه می کند.
بازیابی فایل State
cp terraform.tfstate.backup terraform.tfstate
فایل حالت را از یک نسخه پشتیبان بازیابی می کند.
5. عبارات شرطی
از عبارات شرطی استفاده کنید
resource "aws_instance" "example" {
count = var.create_instance ? 1 : 0
ami = "ami-123456"
instance_type = "t2.micro"
}
از عبارات شرطی برای ایجاد منابع بر اساس مقادیر متغیر استفاده می کند.
6. منابع داده
از منابع داده استفاده کنید
data "aws_vpc" "selected" {
default = true
}
resource "aws_subnet" "example" {
vpc_id = data.aws_vpc.selected.id
cidr_block = "10.0.1.0/24"
availability_zone = "us-west-2a"
}
از منابع داده برای واکشی اطلاعات در مورد منابع موجود استفاده می کند.
7. اشکال زدایی
ثبت جزئیات را فعال کنید
export TF_LOG=DEBUG
terraform apply
ثبت جزئیات را برای اهداف اشکال زدایی فعال می کند.
وارد یک فایل شوید
export TF_LOG=DEBUG
export TF_LOG_PATH=./terraform.log
terraform apply
اطلاعات اشکال زدایی را در یک فایل ثبت می کند.
📊 بهترین شیوه ها
از کنترل نسخه استفاده کنید
- فایل های پیکربندی Terraform خود را در یک سیستم کنترل نسخه (به عنوان مثال، Git) ذخیره کنید تا تغییرات را پیگیری کنید و با اعضای تیم همکاری کنید.
کد خود را مدولار کنید
- پیکربندی های Terraform خود را به ماژول های قابل استفاده مجدد برای ترویج استفاده مجدد از کد و مدیریت پیچیدگی تقسیم کنید.
مدیریت فایل های حالت ایمن
- از پشتیبانهای راه دور برای ذخیره و مدیریت ایمن فایلهای حالت خود استفاده کنید و مطمئن شوید که بهطور تصادفی حذف یا اصلاح نشدهاند.
از متغیرها و خروجی ها استفاده کنید
- از متغیرها برای پارامترسازی پیکربندی ها و خروجی ها برای استخراج اطلاعات مفید از پیکربندی های خود استفاده کنید.
پیاده سازی خطوط لوله CI/CD
- Terraform را با خطوط لوله CI/CD ادغام کنید تا آزمایش و استقرار زیرساخت خود را خودکار کنید.
سیاست ها را اجرا کنید
- از ابزارهایی مانند HashiCorp Sentinel یا Open Policy Agent (OPA) برای اجرای سیاست ها و اطمینان از انطباق با استانداردهای سازمان خود استفاده کنید.
🚀 نتیجه گیری
تسلط بر دستورات Terraform از سطوح مبتدی تا پیشرفته برای مهندسین DevOps برای مدیریت موثر و خودکارسازی زیرساخت ضروری است. این راهنمای جامع مرجع ارزشمندی برای پیمایش در محیط Terraform شما ارائه می دهد. با پیروی از بهترین شیوه ها و استفاده از این دستورات، می توانید از راه اندازی زیرساخت قوی و کارآمد اطمینان حاصل کنید.
ترافورمینگ مبارک! 🎉
به خاطر خواندن بلاگم از شما متشکرم …:)
© حق چاپ: ProDevOpsGuy
به ما بپیوندید انجمن تلگرام || برای اطلاعات بیشتر من را دنبال کنید محتوای DevOps