كل ملفات tf بتتلم
Terraform يقرا كل ملف اسمه ينتهي بـ .tf في الفولدر. ترتيب الملفات مش ترتيب تنفيذ. تقدر تقسّم main.tf وvariables.tf وoutputs.tf، والأداة تشوفهم كل واحد.
بلوك terraform
ده بيقول أنهي مترجمين مسموح بيهم، وبأي مدى إصدارات.
terraform { required_providers { local = { source = "hashicorp/local" version = "~> 2.5" } }}source عنوان الـ provider في الريجستري. ~> 2.5 يعني من 2.5 لحد قبل 3.0. على التشغيل ده init نزّل 2.9.1 وكتب الاختيار في .terraform.lock.hcl.
بلوك resource
سطرين الاسم: الأول نوع المورد عند الـ provider، والتاني اسمك أنت.
resource "local_file" "note" { filename = "${path.module}/hello.txt" content = "${var.greeting}\n"}العنوان يبقى local_file.note. path.module فولدر الملف اللي فيه البلوك. var.greeting قيمة متغير هنعرفه في فصل لوحده.
لو كتبت المورد من غير file_permission، خطة النسخة دي طلعت الصلاحية الافتراضية 0777. على ملف تجربة ده عادي. على ملف فيه سر، حط file_permission بنفسك.
المتغير والمخرج
variable "greeting" { type = string description = "text written into the file" default = "hello from terraform"}output "path" { value = local_file.note.filename}variable مدخل. output حاجة تطبعها بعد apply وتقدر تمرّرها لموديول تاني. الوصف للناس، والنوع عشان قيمة غلط تتقفش قبل التنفيذ.
خلّصت الفصل لما
١) عندي main.tf وvariables.tf. أنهي واحد يتنفّذ الأول؟
.tf في الفولدر.٢) إيه عنوان المورد اللي نوعه local_file واسمه note؟
local_file.note٣) ليه ملف القفل في git والكاش لأ؟
.terraform/ يتنزّل تاني بـ init.