Aus dem Kurs: Terraform lernen

»terraform init« – Konfiguration vorbereiten – Tutorial zu Terraform

Aus dem Kurs: Terraform lernen

»terraform init« – Konfiguration vorbereiten

In diesem Video wollen wir uns damit beschäftigen, was terraform init eigentlich genau bewirkt. Wir befinden uns hier im Ordner 03 mit unserer main.tf und unserer provider.tf und in diesem Ordner wurde noch nie Terraform ausgeführt. Damit Terraform überhaupt weiß, was es zu tun hat, muss man am Anfang einmal ein terraform init ausführen, das Ganze mit Enter bestätigen. Und dann sehen wir, dass hier einiges passiert, wir kriegen einige Ausgaben in der Konsole, sehen aber auch, dass hier beispielsweise ein Ordner erstellt wird. Der erste Step, der hier durchgeführt wird, ist die Initialisierung des Backends, das, was wir also in der Provider.tf konfiguriert haben, nämlich, dass wir ein lokales Backend nutzen wollen, und zwar im folgenden Pfad. Das wird initialisiert, das heißt, Terraform schaut, dass diese Exe auch tatsächlich dort Zugriff hat, um dort entsprechend diesen TF State auch ablegen zu können. Und im Anschluss werden die sogenannten Provider Plugins initialisiert. Und da sehen wir, hier wird zugegriffen auf hashicorp/azurerm, weil wir natürlich hier unser Provider.tf, diesen azurerm Provider auch konfiguriert haben. Der wird installiert und ist dann fertig installiert und dann bekommen wir hier auch noch die Info, dass Terraform ein Lock File erstellt hat. Und dieses Lock File hilft uns nachzuvollziehen, welche Provider Konfigurationen bereits gezogen wurden. Und wenn wir jetzt irgendetwas ändern, das heißt, wenn wir beispielsweise noch einen AWS Provider hinzufügen oder Ähnliches, dann müssen wir immer terraform init noch einmal neu ausführen, denn ohne das weiß Terraform nichts von diesen Plugins. Terraform wurde jetzt erfolgreich initialisiert, wir sind also jetzt fertig und könnten mit Terraform loslegen zu arbeiten, zu konfigurieren. Wir wollen uns aber hier einmal die zusätzlich entstandene Information anschauen. Zum einen haben wir hier den Lock, in diesem Lock sehen wir, da ist nicht viel lesbares für uns drin, da stehen einige Hashes drin. Was für uns wichtig ist, geladen wurde hashicorp/azurerm in der Version 2.62.1 Und wir haben hier einen Ordner, in dem sich ein TF State befindet und auch unser Provider. Da sehen wir aber schon, das Ganze wird hier nicht dargestellt, weil das ist irgendeine Binär-Datei, aber hier sind im Prinzip unsere Provider hinterlegt. Und umso mehr Provider ich konfiguriere oder verwende, umso größer wird natürlich auch hier der Ordner. Das macht terraform init, geht also hin, liest die Provider Informationen aus, liest die Backend Informationen aus, konfiguriert diese, lädt für mich automatisch die entsprechenden Plugins herunter. Ja, und dabei wird es schon ganz klar, Terraform braucht im besten Fall Internetzugriff, denn es versucht immer auf die terraform.io-Seite zuzugreifen, um beispielsweise hier azurerm herunterzuladen.

Inhalt