Sobes.tech
Middle

Ինչպե՞ս է Terraform-ը որոշում, թե տվյալը որ ֆայլում է։

sobes.tech AI

Պատասխան AI-ից

Terraform ավտոմատ կերպով բեռնում և մշակում է բոլոր .tf և .tfvars ընդլայնումներով ֆայլերը այն დირექტորից, որտեղից այն գործարկվում է (աշխատանքային դիրեկտորիա): Դա պահանջ չի, որ ֆայլերը նշեք հստակ:

  • .tf ֆայլերը պարունակում են հիմնական կոնֆիգուրացիոն բլոկներ՝ ռեսուրսներ, պրովայդերներ, փոփոխականներ, ելքեր, մոդուլներ և այլն:
  • .tfvars ֆայլերը պարունակում են արժեքների սահմանումներ՝ փոփոխականների համար, որոնք հայտարարված են .tf ֆայլերում: Կարող են նաև օգտագործվել terraform.tfvars անունով կամ շրջակա միջավայրի անունով և .tfvars ընդլայնմամբ ֆայլեր (օրինակ՝ dev.tfvars) ավտոմատ բեռնում համար:

Terraform-ը միավորում է այս բոլոր ֆայլերից ստացված տեղեկությունները՝ կառուցելու վերջնական կախվածության գրաֆը և գործարկման պլանը:

Դիրեկտորիայի կառուցվածքի օրինակ:

/project
├── main.tf         # Հիմնական ռեսուրսներ
├── variables.tf    # Փոփոխականների հայտարարում
├── outputs.tf      # Ելքային արժեքների հայտարարում
├── terraform.tfvars # Դիրեկտորիայի համար արժեքներ՝ ըստ նախընտրության
└── modules/
    └── vpc/
        ├── main.tf
        ├── variables.tf
        └── outputs.tf

Այս օրինակով, /project-ից գործարկման ժամանակ, Terraform-ը բեռնում է main.tf, variables.tf և outputs.tf ֆայլերը: terraform.tfvars-ից արժեքները կկիրառվեն variables.tf-ում հայտարարված փոփոխականների վրա: /modules/vpc մոդուլը բեռնվելու է, եթե այն կանչվի վերևի մակարդակի ֆայլերից մեկում:

Կարևոր է նշել, որ ֆայլերի ներսում հայտարարությունների հերթականությունը կամ ֆայլերի միջև հերթականությունը չի ազդում Terraform-ի վրա: Այն կառուցում է կախվածության գրաֆը և իրականացնում գործողությունները հնարավորինս միաժամանակ, հիմնվելով ռեսուրսների և այլ կոնֆիգուրացիոն տարրերի միջև կապերին: