Hetzner Cloud

Verwalten Sie die Hetzner-Cloud mit Salt-Cloud

Hcloud für Python installieren

pip3 install hcloud

SSH Schlüsselpaar erzeugen

mkdir /etc/salt/cloud.keys.d 
ssh-keygen -N "" -t ed25519 -C "salt@hetzner" \
-f /etc/salt/cloud.keys.d/hetzner

Cloud-Account vorbereiten

Zuerst müssen Sie ein Projekt anlegen, innerhalb dessen die Cloud-VMs von Salt angelegt werden.

Wählen Sie das neu angelegte Projekt aus und klicken Sie auf der linken Seite die Sicherheitseinstellungen an (Schlüssel-Symbol). Fügen Sie dann den öffentlichen SSH Schlüssel aus der Datei /etc/salt/cloud.keys.d/hetzner.pub des Salt-Masters hinzu. Geben Sie dem Schlüssel einen Namen, z. B. salt. Auf diesen Namen werden Sie später refferenzieren.

Wählen Sie im Bereich »Sicherheit« oben den Reiter »API TOKENS« aus und generieren Sie einen neuen Token. Nennen Sie diesen z. B. »Salt-Master« und aktivieren Sie Lese- und Schreibrechte. Notieren Sie sich den erzeugten Token.

Konfigurationsdateien anlegen

Legen Sie einen Cloud-Provider an. Als key tragen Sie den zuvor generierten API Token ein.

/etc/salt/cloud.providers.d/hetzner.conf
hetzner:
  key: <API-TOKEN>
  driver: hetzner
  private_key: /etc/salt/cloud.keys.d/hetzner
  ssh_keys:
    - salt       # Must match the key name as set on the Hetzner Conosle
  location: nbg1 # use 'salt-cloud --list-location hetzner' 
  minion:
    master: <FQDN-OR-IP-OF-MASTER>
    master_port: <MASTER-PORT>    # omit to use default 4506
    publish_port: <PUBLISH-PORT>  # omit to use default 4505
    tcp_keepalive_idle: 60
    tcp_keepalive_cnt: 2
    tcp_keepalive_intvl: 60

Testen Sie Konfiguration mit den folgenden Kommandos:

salt-cloud --list-images hetzner
salt-cloud --list-sizes hetzner
salt-cloud -f list_ssh_keys hetzner

Legen Sie anschließend Profile für die gewünschten VMs an. Beispiel:

ubuntu-s@hetzner:
  provider: hetzner
  image: ubuntu-22.04
  size: cx11

VM verwalten

Legen Sie nun eine neue VM an

salt-cloud -p ubuntu-s@hetzner uriel -l debug
salt uriel test.ping

VM können mit salt-cloud -d <MINION-ID> wieder gelöscht werden.

Last updated