Aus dem Kurs: Terraform lernen

»terraform init« – Konfiguration vorbereiten

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 "terraform init" ausführen und das Ganze mit Enter bestätigen. Machen wir uns hier ein bisschen mehr Platz, denn wir sehen schon, wir führen hier einiges aus und bekommen hier auch einiges an Ausgabe in der Konsole. Wir sehen aber auch, dass hier bspw. auch ein Ordner und noch eine zusätzliche Datei erstellt wird. Der erste Step, der hier angezeigt wird, ist, dass das Backend initialisiert wird, dass also das, was in unserer provider.tf angegeben war, tatsächlich jetzt auch konfiguriert ist, in unserem Fall hier ein lokales Backend, und zwar in dem Pfad, den wir hier definiert haben. Danach wurden die Plugins initialisiert und das sehen wir hier, wie zugegriffen wird auf hashicorp/azurerm in der aktuellsten Version bspw., und das natürlich auch, weil wir in unserer provider.tf diesen Provider auch hinterlegt haben. Der wird dann installiert und wenn er dann fertig installiert ist, dann bekommen wir hier auch noch die Info, dass Terraform ein Log-File erstellt hat. Und dieses Log-File hilft uns, nachzuvollziehen, welche Provider-Konfigurationen bereits gezogen wurden. Und wenn wir jetzt z.B. irgendetwas ändern, d.h., wenn wir bspw. 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 neuen Plugins. Terraform wurde jetzt erfolgreich initialisiert und wir sind fertig und können also mit Terraform loslegen. Wir wollen uns aber auch noch mal anschauen, welche Informationen hier jetzt zusätzlich entstanden sind. Zum einen schauen wir uns mal das Log an. In diesem Log, da sehen wir erst mal relativ viele Informationen, mit denen wir auch nur so bedingt viel anfangen können, z.B. hier eine ganze Reihe an Hashes. Wir sehen aber eben z.B. hier, welcher Provider geladen wurde, nämlich dass das hier der Azure Resource Manager Provider ist, und zwar in der Version 4.12.0. Und wir haben einen Ordner, in dem wir zusätzliche Provider-Informationen haben. Da finden wir z.B. interimsweise den Terraform State wieder. Wir finden hier unsere Provider-Konfiguration inklusive Lizenzen wieder. Und dann haben wir aber hier eine Provider-Konfiguration, da sehen wir, das ist eine EXE, das ist eine Binärdatei, da können wir jetzt so ohne Weiteres nicht drauf zugreifen. Das heißt also, mit dieser Konfiguration ist Terraform jetzt in der Lage zu arbeiten. Und es wird einem natürlich auch klar, wenn wir uns dieses "terraform init" hier so anschauen, Terraform braucht im besten Fall Internetzugriff, denn es versucht immer, auf die terraform.io-Seite zuzugreifen. Das haben wir hier gesehen, aus welcher Registry diese Provider nachgeladen wurden, um das dann eben entsprechend nachzuladen oder aber auch zu aktualisieren.

Inhalt