Terraform jest używany do automatyzacji i zarządzania infrastrukturą, platformami i usługami przy użyciu języka deklaratywnego. Zbudowany w celu rozwiązania infrastruktury jako Code (IAC), Terraform obsługuje wielu dostawców usług w chmurze. Jest to narzędzie open source opracowane przez Hashicorp. Korzystając z IAC, możemy zarządzać konfiguracją infrastruktury za pomocą plików konfiguracyjnych. Za e.G., Możemy wdrażać, aktualizować i zarządzać naszą infrastrukturą, definiując wymagane zasoby.
Co obejmiemy?
W tym przewodniku dowiemy się o zmiennych terraform. Zobaczymy, dlaczego zmienne terraform są ważne i jak powinniśmy je zdefiniować i używać.
Dlaczego miałbyś dbać o zmienne terraformowe?
W Terraform możemy przypisać wartości argumentom za pośrednictwem literałów, takich jak liczby całkowite i sznurki. Może to być dobre podejście do konfiguracji małych infrastruktury, ale wraz ze wzrostem wielkości infrastruktury, podejście to staje się bardzo nieefektywne. W takich przypadkach możemy użyć zmiennych wejściowych Terraform, w których deklarujemy wartość tylko w jednym miejscu, a następnie używamy tej wartości w innych częściach kodu i plików, odwołując się do nich. Takie podejście jest bardziej wydajne, ponieważ sprawia, że kod jest wielokrotnego użytku i kompozytowy.
Zauważ, że Terraform używa terminu „zmienne” lub „zmienne terraform” do odniesienia zmiennych wejściowych.
Definiowanie zmiennej
W Terraform zmienne są zdefiniowane w „zmiennej” o nazwie blok, który ma następujący typ składni:
Zmienna nazwa_nazowa argumenty
Samo słowo kluczowe „zmienna” deklaruje blok jako typ bloku „zmiennej”. „Nazwa_zmienna zmiennej”, po słowie kluczowym zmiennej, to nazwa zmiennej, którą zamierzamy zdefiniować. Ta nazwa musi być charakterystyczna od innych zmiennych w tym samym module. Za pomocą tej nazwy zmienną przypisuje się wartość z zewnątrz. Podobnie, używając nazwy zmiennej, możemy odwoływać się do jej wartości w module.
Należy zauważyć, że następujących zastrzeżonych identyfikatorów nie może być używane dla nazwy zmiennej: źródło, wersja, dostawcy, hrabia, for_each, cykl życia, zależnie.
Argumenty dotyczące bloku zmiennego
Poniższe argumenty można zadeklarować wewnątrz bloku typu zmiennego:
Domyślnie - ustawia domyślną wartość dla bloku. Zmienna jest opcjonalna, jeśli jest obecna wartość domyślna. Ta wartość zostanie użyta, jeśli nie zostanie określona żadna inna wartość podczas wywoływania modułu.
Typ - określa typy wartości, które można użyć ze zmienną.
Opis - jest to rodzaj komentarza na temat samej zmiennej.
Walidacja - jest to blok do zdefiniowania warunków/kontroli dla zmiennej.
wrażliwe - ukrywa dane poufne do wyświetlania podczas uruchamiania polecenia „plan” lub „zastosuj”.
Nullable - kontroluje, czy zmiennej można przypisać wartość w module.
Dostęp do wartości zmiennej
Aby uzyskać dostęp do wartości zmiennej z modułu, użyj formatu:
var.
Gdzie „var” jest prefiksem i jest etykietą po słowach kluczowych „zmienna”. Tę przypisaną wartość zmiennej można uzyskać tylko w wyrażeniach w module, w którym została zdefiniowana. Jako przykład rozważ zmienną „klucz” zdefiniowany jako:
zmienna „instance_type”
Domyślnie = „T2.mikro ”
Możemy odwołać się do powyższej zmiennej w następujący sposób:
Zasób „aws_instance” „przykład”
instance_type = "var.instance_type "
ami = var.image_id
Zmienne wiersza poleceń
Aby przypisać wartość do zmiennej w wierszu poleceń, Terraform używa opcji „-VAR”. Za e.G., Po wykonywaniu planu Terraform i Terraform Zastosuj, możemy zrobić w następujący sposób:
1. Przekazanie instancji AMI-ID
$ terraform Apply -var = "image_id = ami -xyz123"
2. Przekazywanie listy instancji AMI-IDS
$ terraform Apply -var = 'image_id_list = ["ami -xyz123", "ami -ABC456"]' -var = "instance_type = t2.mikro "
3. Przekazywanie wartości typu mapy
$ terraform Apply -var = 'image_id_map = „us-east-1”: „ami-xyz123”, „us-east-2”: „AMI-ABC456”'
Pliki z definicji zmiennych (.TFVARS)
Gdy istnieje wiele zmiennych, dobrym pomysłem jest umieszczenie ich wszystkich w pliku definicji zmiennej (a .plik tfvars lub .TFVARS.plik JSON). Następnie możemy przekazać ten plik w wierszu poleceń w następujący sposób:
$ terraform Apply -var -file = "przykład.TFVARS "
Ten plik zostanie przeanalizowany automatycznie, jeśli nazywa się „Terraform.tfvars '.
Zauważ, że nie umieszczamy tego pliku w żadnym systemie kontroli źródłowej, aby uniknąć narażenia na jakiekolwiek poufne dane.
Również jeśli dodamy '.Auto „do nazwy pliku przed”.na przykład tfvars.automatyczny.TFVAR, ten plik zostanie załadowany automatycznie bez określenia flagi „var-plik”. To jest to samo co „Terraform.plik tfvars.
Zmienne środowiska
Zmienne środowiskowe, z nazwami poprzedzonymi TF_VAR, można użyć do definiowania zmiennych wejściowych. Za e.G., „TF_VAR_MYKEY” będzie odnosić się do wartości zmiennej Terraform o nazwie „Mykey”. Aby ustawić pojedynczą wartość dla tej zmiennej środowiskowej na Unix/Linux, użyj formatu:
$ Tf_var_mykey = „FHJ7-47DD-HLL02-PJU8”
Podobnie w przypadku systemu systemu Windows użyj formatu:
Ustaw tf_var_mykey = „FHJ7-47DD-HLL02-PJU8”
Alternatywnie możemy również użyć Terraform.plik TFVARS.
Owinięcie
W końcu w końcu zamykamy ten artykuł, chociaż istnieje wiele innych rzeczy do omówienia. Przedstawiliśmy wysoki poziom zmiennych terraform. Oprócz Terraform istnieją również inne narzędzia, takie jak AWS Cloudformation, szef kuchni, marionetka, ansible i tak dalej. Każde narzędzie ma własne zalety i ograniczenia. Zaletą korzystania z Terraform jest to, że nie jest ono związane z konkretnym dostawcą usług.