Terraformvariablen

Terraformvariablen
Terraform hat sich zu einem der führenden Bereitstellungswerkzeuge für die Entwicklung von Multi-Cloud-Entwicklung entwickelt. Es verwendet eine eigene Syntax -basierte Sprache mit dem Namen - HCL (Hashicorp -Konfigurationssprache), obwohl es selbst in Golang entwickelt wird.

Terraform wird zur Automatisierung und Verwaltung von Infrastrukturen, Plattformen und Diensten mithilfe einer deklarativen Sprache verwendet. Für den Zweck der Infrastruktur als Codelösung (IAC) erstellt. Es ist ein Open -Source -Tool, das von Hashicorp entwickelt wurde. Mit IAC können wir das Infrastruktur -Setup mit Konfigurationsdateien verwalten. Für e.G., Wir können unsere Infrastruktur bereitstellen, aktualisieren und verwalten, indem wir die erforderlichen Ressourcen definieren.

Was werden wir abdecken??

In diesem Leitfaden erfahren wir über Terraformvariablen. Wir werden sehen, warum Terraformvariablen wichtig sind und wie wir sie definieren und verwenden sollten.

Warum sollten Sie sich für Terraformvariablen interessieren?

In Terraform können wir den Argumenten über Literale wie Ganzzahlen und Strings Werte zuweisen. Dies mag ein guter Ansatz für kleine Infrastrukturkonfigurationen sein, aber wenn die Größe der Infrastruktur wächst, wird dieser Ansatz sehr ineffizient. In solchen Fällen können wir die Eingabevariablen von Terraform verwenden, bei denen wir einen Wert nur an einem Ort deklarieren und diesen Wert dann in anderen Teilen des Codes und der Dateien verwenden, indem wir sie verweisen. Dieser Ansatz ist effizienter, da der Code wiederverwendbar und komponierbar macht.

Beachten Sie, dass Terraform den Begriff "Variablen" oder "Terraformvariablen" verwendet, um Eingangsvariablen zu referenzieren.

Definieren einer Variablen

In Terraform sind Variablen in einem "Variablen" namens Block definiert, der die folgende Art von Syntax aufweist:

variable variable_name argumente

Das Schlüsselwort "Variable" selbst deklariert den Block als "Variablen" -Blocktyp. Das 'variable_name' ist nach dem variablen Schlüsselwort der Name der Variablen, die wir definieren werden. Dieser Name muss sich von anderen Variablen innerhalb desselben Moduls unterscheiden. Mit diesem Namen wird der Variablen ein Wert von außen zugewiesen. In ähnlicher Weise können wir unter Verwendung des Variablennamens seinen Wert innerhalb des Moduls verweisen.

Beachte.

Argumente für den variablen Block

Die folgenden Argumente können in einem Block mit variabler Typ deklariert werden:

Standard - es legt einen Standardwert für den Block fest. Eine Variable ist optional, wenn ein Standardwert vorliegt. Dieser Wert wird verwendet, wenn beim Aufrufen eines Moduls kein anderer Wert angegeben wird.

Typ - Es gibt die Wertearten an, die mit der Variablen verwendet werden können.

Beschreibung - Es ist eine Art Kommentar zur Variablen selbst.

Validierung - Es ist ein Block, um Bedingungen/Überprüfungen für eine Variable zu definieren.

Sensibil.

Nullierbar - es steuert, ob der Variablen ein Wert innerhalb des Moduls zugewiesen werden kann.

Zugriff auf die Werte einer Variablen

Verwenden Sie das Format, um auf einen Wert der Variablen aus dem Modul zuzugreifen:

var.

Wobei 'var' ein Präfix ist und nach dem Schlüsselwort 'Variable' das Etikett ist. Dieser zugewiesene Wert einer Variablen kann nur in Ausdrücken innerhalb des Moduls zugegriffen werden, in dem sie definiert wurde. Betrachten Sie als Beispiel eine Variable 'Schlüssel', die als:

Variable "Instance_type"
Standard = “T2.Mikro"


Wir können die obige Variable wie folgt verweisen:

Ressource "aws_instance" "Beispiel"
Instance_type = "var.Instance_type "
AMI = var.Image_id

Befehlszeilenvariablen

Um eine Variable in der Befehlszeile zuzuweisen, verwendet Terraform die Option "-var". Für e.G., Wenn der Befehl terraform plan und terraform anwenden ausgeführt werden, können wir wie folgt tun:

1. Eine Instanz ami-id verabschieden

$ terraform anwenden -var = "Image_id = ami -xyz123"


2. Übergeben einer Liste von Instanzen ami-ids

$ terraform anwenden -var = 'image_id_list = ["ami -xyz123", "ami -abc456"]' -var = "instance_type = t2.Mikro"


3. Übergeben eines Kartentypwerts

$ terraform anwenden -var = 'image_id_map = "us-East-1": "ami-xyz123", "US-East-2": "Ami-Abc456"'

Dateien mit variablen Definitionen (.tfvars)

Wenn es viele Variablen gibt, ist es eine gute Idee, sie alle in eine variable Definitionsdatei (a .TFVARS -Datei oder .tfvars.JSON -Datei). Wir können diese Datei dann wie folgt in der Befehlszeile übergeben:

$ terraform anwenden -var -file = "Beispiel".tfvars "


Diese Datei wird automatisch analysiert, wenn sie als 'Terraform bezeichnet wird.tfvars '.

Beachten Sie, dass wir diese Datei nicht in ein Quellvertretungssystem einfügen, um die Exposition gegenüber sensiblen Daten zu vermeiden.

Auch wenn wir hinzufügen '.automatisch 'zu einem Dateinamen vor'.tfvars 'zum Beispiel myfile.Auto.TFVARS, diese Datei wird automatisch geladen, ohne das Flag "Var-file" anzugeben. Dies ist das gleiche wie die Terraform.tfvars 'Datei.

Umgebungsvariablen

Umgebungsvariablen mit Namen, die mit TF_VAR vorangestellt sind, können verwendet werden, um Eingabevariablen zu definieren. Für e.G., "Tf_var_mykey" bezieht sich auf den Wert einer Teraformvariablen mit dem Namen "MyKey". Verwenden Sie das Format, um einen einzelnen Wert für diese Umgebungsvariable auf UNIX/Linux festzulegen:

$ Tf_var_mykey = "fhj7-47dd-hll02-pju8"


Verwenden Sie für Windows OS für Windows OS das Format:

Setzen Sie tf_var_mykey = "fhj7-47dd-hll02-pju8"


Alternativ können wir auch die Terraform verwenden.TFVARS -Datei.

Einpacken

Wir schließen diesen Artikel jetzt endlich, obwohl es viele andere Dinge zu behandeln gibt. Wir haben eine hochrangige Sicht auf Terraformvariablen vorgestellt. Neben Terraform gibt es auch andere Tools wie AWS CloudFormation, Chef, Puppenspiel, Ansible usw. Jedes Tool hat seine eigenen Vorteile und Einschränkungen. Der Vorteil der Verwendung von Terraform ist, dass es nicht an einen bestimmten Dienstleister gebunden ist.