Middle+
Əgər siz maşının vəziyyətini (state) silmisinizsə və onu provayderə yükləmisinizsə, terraform init əmri icra edilərkən yüklənəcəkmi? Yoxsa bu halda nə baş verəcək?
sobes.tech Süni İntellekt
AI-dan cavab
Xeyr, terraform init əməliyyatını icra etdikdə, vəziyyət yerli diskdən silindikdən və provayderə köçürüldükdən sonra avtomatik olaraq maşına yüklənməyəcək.
terraform init əsasən aşağıdakı əməliyyatları yerinə yetirir:
- Uzaqda vəziyyətin saxlanması üçün konfiqurasiya edilmiş backend-i (məsələn, S3, Azure Blob Storage, Google Cloud Storage) işə salır.
- Konfiqurasiyada göstərilən provayderlərin pluginlərini yükləyir.
- Əgər istifadə olunursa, modulları yükləyir.
Yerli vəziyyət faylı (terraform.tfstate) yerli maşından silinir. Terraform yalnız konfiqurasiya edilmiş backend-də saxlanılan vəziyyətdən istifadə edəcək.
Nə baş verəcək:
terraform initicra edilərkən, Terraform konfiqurasiyanı oxuyacaq və konfiqurasiya olunmuş backend-in olub-olmadığını müəyyən edəcək.- Bu backend-i işə salacaq və uzaq saxlama ilə əlaqə quracaq.
- Yerli maşında yeni
terraform.tfstatefaylı yaradılmayacaq. Terraform birbaşa uzaq vəziyyətlə işləyəcək.
Sonrakı icralarda (terraform plan, terraform apply, terraform destroy) Terraform infrastrukturun hazırkı vəziyyətini əldə etmək üçün uzaq backend-ə müraciət edəcək.
S3 backend konfiqurasiyası nümunəsi:
# S3 backend konfiqurasiyası
terraform {
backend "s3" {
bucket = "my-terraform-state-bucket" # S3 bucket-in adı
key = "path/to/my/state.tfstate" # Bucket-də obyektin açarı
region = "us-east-1" # S3 bucket-in bölgəsi
# Əlavə seçimlər, məsələn, şifrələmə, kilidləmək üçün dynamodb cədvəli
}
}
# Resurs nümunəsi
resource "aws_instance" "example" {
ami = "ami-0abcdef1234567890"
instance_type = "t2.micro"
tags = {
Name = "example-instance"
}
}