الدورة
init آمن تعيده. مبيمسحش الرسمة ولا الدفتر. لو غيّرت الـ provider أو الـ backend أو الموديول، شغّله تاني.
🧪 Lab
الفولدر فيه الملف ده. المتغير الافتراضي hello from terraform.
terraform { required_providers { local = { source = "hashicorp/local" version = "~> 2.5" } }}variable "greeting" { type = string description = "text written into the file" default = "hello from terraform"}resource "local_file" "note" { filename = "${path.module}/hello.txt" content = "${var.greeting}\n"}output "path" { value = local_file.note.filename}terraform initterraform planterraform applyعلى 1.16.6 الناتج كان:
initثبّتhashicorp/local v2.9.1وعمّل.terraform.lock.hcl.planقالlocal_file.note will be createdوبعدينPlan: 1 to add, 0 to change, 0 to destroy.applyكتبhello.txtفيه السطرhello from terraform، وطبَعpath = "./hello.txt".
apply من غير ملف خطة محفوظ بيسألك توافق. -auto-approve يعدّي السؤال. على كلاود فيها حاجات شغالة، سيّب السؤال أو راجع خطة محفوظة.
رموز الخطة
| الرمز | المعنى |
|---|---|
+ | هيتخلق |
~ | هيتعدّل في مكانه |
-/+ | هيتمسح ويتخلق تاني |
- | هيتمسح |
المعمل ده ورّى + و-/+ و-. الرمز ~ يظهر لما الخاصية تتغير من غير ما المورد كله يتبدّل.
غيّرت النص
terraform apply -var 'greeting=hello again'الخطة قالت local_file.note must be replaced وPlan: 1 to add, 0 to change, 1 to destroy. المحتوى عند الـ provider ده بيجبر استبدال، مش تعديل في مكانه. الملف اتمسح واتكتب تاني، والسطر بقى hello again.
-/+ على سيرفر، ده هدم وبناء، مش تعديل هادي.
مسحت الملف بإيدك
بعد ما apply خلّص، الملف اتمسح من الطرفية وplan اشتغل تاني. الدفتر لسه فاكر إن local_file.note موجود، والقرص فاضي، فالخطة رجعت + create و1 to add.
ده الانحراف: الواقع مش زي الدفتر. الفصل الجاي يكمل على الدفتر نفسه.
destroy
terraform destroy خطة مسح لكل اللي في الدفتر. على المعمل: Destroy complete! Resources: 1 destroyed. وhello.txt اختفى.
الملف terraform.tfstate وterraform.tfstate.backup فضلوا. المسح مسح المورد، ومسحش الدفتر من القرص.
fmt و validate
terraform fmtterraform validatefmt يرتّب الأقواس والمسافات. validate على الملف ده طبع Success! The configuration is valid. الاتنين قبل plan على أي تغيير هيروح للناس.