الآخر

Cheat Sheet: Terraform

init · plan -out · apply · state · use_lockfile · for_each
🎯 الهدف: تفتكر أمر الدورة، وإيه اللي يتحط في git، ومين يكسب في المتغيرات، وامتى for_each.
الدوررسمة في .tf، والـ provider يكلّم الخدمة
أول أمرterraform init، وتعيده لو الـ provider أو الـ backend اتغير
القفل في git.terraform.lock.hcl أيوه، وفولدر .terraform/ لأ
قبل الخطةterraform fmt وبعدين terraform validate
المعاينةterraform plan يطبع + و~ و-/+ و-
التنفيذterraform apply، وفي CI plan -out=tfplan ثم apply tfplan
-auto-approveيعدّي السؤال. بيتتجاهل لو مدّيت ملف خطة
استبدال-/+ وmust be replaced يعني هدم وبناء
المسحterraform destroy يمسح الموارد، وملف الـ state يفضل
الدفترterraform.tfstate رابط المعرّفات. متعدّلوش بإيدك
سرsensitive يخبي الطرفية. القيمة تفضل في الـ state
gitامنع *.tfstate و*.tfstate.* و*.tfvars
قفل بعيدbackend s3 مع use_lockfile = true من 1.10
DynamoDBdynamodb_table deprecated. سيّبه بس وقت النقل
ترتيب القيمdefault، ثم TF_VAR_، ثم terraform.tfvars، ثم *.auto.tfvars، ثم -var
localحساب جوه الملف. local.name مش var.name
الموديولmodule "note" وsource، والمخرج module.note.path
path.moduleفولدر البلوك. path.root فولدر الأمر
أسماء ثابتةfor_each على map. count بيزحزح الأرقام
انحرافمسح من الكونسول والرسمة لسه طالبه يخلّي الخطة create

خلّصت الموضوع لما

🧠 اختبر نفسك
١) إيه اللي يتحط في git: الـ lock ولا الـ state؟
ملف .terraform.lock.hcl. الـ state لأ.
٢) خطة فيها -/+ على سيرفر إنتاج. تعمل apply على طول؟
اقرأها الأول. الرمز ده استبدال، مش تعديل في مكانه.
٣) عايز نسختين بأسماء a وb وممكن تشيل واحدة. count ولا for_each؟
for_each، عشان العنوان بالمفتاح ومسح واحد ميهزش التاني.