المتغير
variable "greeting" { type = string description = "text written into the file" default = "hello from terraform"}default يشتغل لو محدش مدّ قيمة. من غيره، plan هيقف ويسأل، أو يفشل لو شغّلت -input=false في CI.
مين اللي يكسب
نفس المتغير اتقاس على 1.16.6. اللي تحت يكسب اللي فوقه:
defaultجوه البلوك.- متغير بيئة اسمه
TF_VAR_greeting. - ملف
terraform.tfvars. - أي ملف
*.auto.tfvars، وبالترتيب الأبجدي لو أكتر من ملف. - علم
-varو-var-file. آخر علم في الأمر يكسب.
اللي ظهر في التشغيل: terraform.tfvars غطّى البيئة، وz.auto.tfvars غطّى terraform.tfvars، و-var 'greeting=from-flag' غطّى الاتنين.
export TF_VAR_greeting="from-env"terraform apply -var 'greeting=from-flag'في المثال ده اللي هيتكتب في الملف هو from-flag.
sensitive يخبي الواجهة
variable "greeting" { type = string sensitive = true}output "greeting" { value = var.greeting sensitive = true}الخطة طبعت (sensitive value)، وبعد apply المخرج اتطبع بكلمة sensitive بين قوسين زاوية. فتح terraform.tfstate لقى secret-value جوه outputs ومعاها "sensitive": true. العلامة للعرض. الفصل السابق يحط الملف ده بره git.
local للمكرر
locals { filename = "${path.module}/hello.txt"}resource "local_file" "note" { filename = local.filename content = "${var.greeting}\n"}local مش مدخل من بره. حساب جوه الملف عشان متكررش المسار في المورد والمخرج. الإشارة local.filename من غير var.
المخرج عقد بين الفولدرات
output هو اللي الموديول التاني أو سكربت CI يقرأه. في المعمل، path طبع مكان hello.txt. متطلّعش كل حقول المورد. طلّع اللي المستهلك محتاجه.
خلّصت الفصل لما
١) فيه terraform.tfvars وفيه -var بنفس الاسم. مين يكسب؟
-var.٢) ملف z.auto.tfvars وملف terraform.tfvars. مين يكسب؟
z.auto.tfvars. ملفات auto بعد terraform.tfvars.