Middle+
Ak ste odstránili stav (state) stroja a ste ho nahrali na poskytovateľa, bude sa pri spustení príkazu terraform init načítavať? Ale čo sa stane v tomto prípade?
sobes.tech AI
Odpoveď od AI
Nie, pri spustitvi terraform init se stanje ne bo samodejno naložilo na stroj po tem, ko je bilo odstranjeno s lokalnega diska in preneseno na ponudnika.
terraform init izvaja predvsem naslednje dejanja:
- Inicializira backend, ki je bil konfiguriran za oddaljeno shranjevanje stanja (npr. S3, Azure Blob Storage, Google Cloud Storage).
- Prenese vtičnike ponudnikov, navedenih v konfiguraciji.
- Prenese module, če se uporabljajo.
Datoteka lokalnega stanja (terraform.tfstate) se odstrani s lokalnega stroja. Terraform bo uporabljal samo stanje, shranjeno v konfiguriranem backendu.
Kaj se bo zgodilo:
- Ob izvajanju
terraform initbo Terraform prebral konfiguracijo in določil, ali je konfiguriran backend. - Inicializira ta backend, vzpostavi povezavo z oddaljenim shranješčem.
- Ne bo ustvarjena nova lokalna datoteka
terraform.tfstatena stroju. Terraform bo neposredno delal z oddaljenim stanjem.
Pri naslednjih izvedbah (terraform plan, terraform apply, terraform destroy) bo Terraform dostopal do oddaljenega backend-a za pridobitev trenutnega stanja infrastrukture.
Primer konfiguracije backend-a S3:
# Konfiguracija backend-a S3
terraform {
backend "s3" {
bucket = "my-terraform-state-bucket" # Ime S3 košare
key = "path/to/my/state.tfstate" # Ključ objekta v košari
region = "us-east-1" # Regija S3 košare
# Dodatne možnosti, npr. šifriranje, tabela dynamodb za zaklepe
}
}
# Primer vira
resource "aws_instance" "example" {
ami = "ami-0abcdef1234567890"
instance_type = "t2.micro"
tags = {
Name = "example-instance"
}
}