opentofu-demo-hcloud/README.md
2026-03-12 22:39:59 +01:00

2.7 KiB

Installation von VMs bei Hetzner

Hetzner Zugang

Die Hetzner-Cloud ist in Projekte unterteilt. Jedes Projekt kann von einen oder mehrere API-Token haben. Diese API-Token bekommen entweder nur lesenden oder lesenden und schreibenden Zugriff auf das betreffende Projekt.

Mit dem API-Token ist eine Automatisierung wie Opentofu in der Lage, die APIs aufzurufen und sich zu identifizieren.

Damit solche Token nicht Bestandteil der Automatisierungsdateien sind und vor allem nicht in Git-Repositories mit eingecheckt werden, lassen sich diese separate Dateien mit Variablen verwenden, die die Tofu-Automatisierungen einlesen können.

Diese Anleitung benötigt eine Datei secrets.tfvars, die bei den Aufrufen mit angegeben wird. Die Datei hat folgenden Inhalt:

hcloud_token="SuperSecretToken"

Initalisierung

Dies lädt den notwendigen Hetzner-Provider herunter, wenn er noch nicht existiert

tofu init

Die Ausgaben sehen für dieses Projekt wie folgt aus:

$ tofu init

Initializing the backend...

Initializing provider plugins...
- Finding hetznercloud/hcloud versions matching "~> 1.60.1"...
- Installing hetznercloud/hcloud v1.60.1...
- Installed hetznercloud/hcloud v1.60.1 (signed, key ID 5219EACB3A77198B)

Providers are signed by their developers.
If you'd like to know more about provider signing, you can read about it here:
https://opentofu.org/docs/cli/plugins/signing/

OpenTofu has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that OpenTofu can guarantee to make the same selections by default when
you run "tofu init" in the future.

OpenTofu has been successfully initialized!

You may now begin working with OpenTofu. Try running "tofu plan" to see
any changes that are required for your infrastructure. All OpenTofu commands
should now work.

If you ever set or change modules or backend configuration for OpenTofu,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Planung

In der Planung kann man sich anzeigen lassen, was tofu bei der Anwendung der Konfiguration ändern würde.

Solange die VM noch nicht existiert, wird also angezeigt, dass alles neu erstellt werden muss.

tofu plan -var-file="secret.tfvars"

Ausführung

Wenn man alles kontrolliert hat und die Änderungen so angewendet werden sollen, wird der Plan angewendet.

tofu apply -var-file="secret.tfvars"

Funktionstest

Am Ende der Ausführung zeigt tofu die IP-Adresse an, die die VM erhalten hat. Mit einer ssh-Verbindung kann geprüft werden, ob alles funktioniert hat.

ssh -l root <die-ausgegebene-ip>