92 lines
2.7 KiB
Markdown
92 lines
2.7 KiB
Markdown
# 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>
|
|
```
|
|
|
|
|