Skip to content

Ansible - Hetzner Server erstellen

Verschoben Ansible
1 1 356
  • Da ich ja seit ein paar Tagen mit Ansible und Semaphore rumspiele, bin ich beim Suchen im Netz über hcloud von Hetzner gestolpert. Das wollte ich ja schon immer mal testen....

    Was brauchen wir?

    apt install python3-hcloud
    

    und einen SSH-Key, falls ihr noch keinen habt.

    Screenshot_20230810_172030_ergebnis.png

    Dann noch einen API Token

    API_ergebnis.png

    Ein Ansible Script, hier soll es mal hcloud-server.yml heißen.

    ---
    - name: Create Basic Server
      hosts: localhost
      connection: local
      gather_facts: False
      user: frank
      vars:
        hcloud_token: <HETZNER_TOKEN>
      tasks:
        - name: Create a basic server
          hcloud_server:
              api_token: "{{ hcloud_token }}"
              name: test-server
              server_type: cx11
              location: nbg1
              image: debian-12
              state: present
              ssh_keys: <NAME SSH KEY FROM WEBINTERFACE HETZNER> 
          register: server
    

    Und dann einmal das Script starten

    ansible-playbook -v hcloud-server.yml
    

    Kurze Zeit später ist der Server fertig. Zugriff bekommt man dann mittels seines SSH-Keys. Wenn man keinen SSH-Key angibt, erstellt Hetzner ein Root-PW was nach dem ersten Login geändert werden muss. Das Root-PW zeigt euch das Ansible-Script im Output an. Es sei Euch aber dringend empfohlen nur mit SSH-Keys zu arbeiten.

    Server.png

    Alles in allem finde ich das eine praktische Sache, mal eben einen Server zu erzeugen und zu starten. Danach noch mit Semaphore ein Playbook drüber laufen lassen, was mir die Ersteinrichtung des Servers abnimmt. Wie aktualisieren, Pakete installieren, die ich immer brauche usw.

    Mal sehen, ob ich das Tool auch noch in einigen Wochen benutze.

  • FrankMF FrankM verschob dieses Thema von Linux am
  • Forgejo Installation mit Podman Quadlet auf Hetzner VM

    Podman forgejo podman quadlet linux
    2
    0 Stimmen
    2 Beiträge
    196 Aufrufe
    FrankMF
    Schauen wir uns mal an, wie man die Container aktuell hält. In der postgres.container steht das hier (als Beispiel) [Container] Image=docker.io/library/postgres:17 AutoUpdate=registry Das AutoUpdate=registry ist die Voraussetzung, dass der Container aktualisiert werden darf. Mit diesem Befehl kann man sich anschauen, wie der Stand der DInge ist. root@debian-4gb-nbg1-2-forgejo:~# podman auto-update --dry-run UNIT CONTAINER IMAGE POLICY UPDATED forgejo-pod.service 6486189fb10c (postgres) docker.io/library/postgres:17 registry false forgejo-pod.service 7d5627e2d434 (forgejo) codeberg.org/forgejo/forgejo:11.0.1 registry false forgejo-pod.service 7fb26d4f8b58 (nginx) docker.io/library/nginx:latest registry false Podman hat aber standardmäßig einen systemd Dienst, der sich darum kümmert root@forgejo:/etc/containers/systemd# systemctl status podman-auto-update.service ○ podman-auto-update.service - Podman auto-update service Loaded: loaded (/usr/lib/systemd/system/podman-auto-update.service; enabled; preset: enabled) Active: inactive (dead) since Mon 2025-06-09 00:02:57 UTC; 12h ago Invocation: a098f0054b254a0888ee789200ac9507 TriggeredBy: ● podman-auto-update.timer Docs: man:podman-auto-update(1) Process: 68939 ExecStart=/usr/bin/podman auto-update (code=exited, status=0/SUCCESS) Process: 68947 ExecStartPost=/usr/bin/podman image prune -f (code=exited, status=0/SUCCESS) Main PID: 68939 (code=exited, status=0/SUCCESS) Mem peak: 14.4M CPU: 292ms Jun 09 00:02:55 forgejo systemd[1]: Starting podman-auto-update.service - Podman auto-update service... Jun 09 00:02:55 forgejo podman[68939]: 2025-06-09 00:02:55.368941 +0000 UTC m=+0.059687227 system auto-update Jun 09 00:02:57 forgejo podman[68939]: UNIT CONTAINER IMAGE POLICY UPDATED Jun 09 00:02:57 forgejo podman[68939]: forgejo-pod.service 6486189fb10c (postgres) docker.io/library/postgres:17 registry false Jun 09 00:02:57 forgejo podman[68939]: forgejo-pod.service 7d5627e2d434 (forgejo) codeberg.org/forgejo/forgejo:11.0.1 registry false Jun 09 00:02:57 forgejo podman[68939]: forgejo-pod.service f2e9eee72017 (nginx) docker.io/library/nginx:latest registry false Jun 09 00:02:57 forgejo systemd[1]: podman-auto-update.service: Deactivated successfully. Jun 09 00:02:57 forgejo systemd[1]: Finished podman-auto-update.service - Podman auto-update service. postgres Ok, die Container sollten automatisch aktualisiert werden. docker.io/library/postgres:17 Die Postgres DB ist auf die Version 17 festgezurrt. Aktuell ist root@forgejo:/etc/containers/systemd# podman exec postgres postgres --version postgres (PostgreSQL) 17.5 (Debian 17.5-1.pgdg120+1) Eine Version 17.6 wird jetzt automatisch installiert, eine Version 18 aber nicht. nginx docker.io/library/nginx:latest NGINX zieht sich also immer die letzte "latest" Version, die zur Verfügung gestellt wird. root@forgejo:/etc/containers/systemd# podman exec nginx nginx -v nginx version: nginx/1.27.5 Gerade mal gecheckt, 1.27.5 ist die letzte Mainline Version. Also sind wir aktuell. forgejo Der Eintrag codeberg.org/forgejo/forgejo:11.0.1 aktuelle Version, die installiert ist. root@forgejo:/etc/containers/systemd# podman exec forgejo forgejo -v Forgejo version 11.0.1+gitea-1.22.0 (release name 11.0.1) built with GNU Make 4.4.1, go1.24.2 : bindata, timetzdata, sqlite, sqlite_unlock_notify Ok, wir sind auf Version 11.0.1 Wenn jetzt die Version 11.0.2 herauskommt, wird diese nicht installiert, da wir im forgejo.container folgendes stehen haben. [Container] Image=codeberg.org/forgejo/forgejo:11.0.1 Das ist aber erst mal nicht so schlimm, ich lese da mit und bekomme das mit. Das mache ich auch lieber von Hand, dann kann ich besser sehen wo es klemmt
  • NodeBB - v3.9.0

    NodeBB nodebb linux
    1
    0 Stimmen
    1 Beiträge
    184 Aufrufe
    Niemand hat geantwortet
  • Nextcloud Hub8 Keine Previews

    Nextcloud nextcloud linux
    2
    0 Stimmen
    2 Beiträge
    440 Aufrufe
    FrankMF
    Noch als Ergänzung, der Server läuft mit Debian 12 # uname -a Linux webserver1-4gb-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64 GNU/Linux
  • RockPro64 - Mainline Kernel 6.8.0-rc3

    ROCKPro64 rockpro64 linux mainline
    2
    0 Stimmen
    2 Beiträge
    530 Aufrufe
    FrankMF
    https://github.com/ayufan-rock64/linux-mainline-kernel/releases/tag/6.8.0-1190-ayufan
  • ufw - Die einfache Firewall

    Linux ufw linux
    3
    0 Stimmen
    3 Beiträge
    371 Aufrufe
    FrankMF
    Beispiel um eingehend einen Port für eine IP-Adresse zu erlauben. ufw allow from 1.1.1.1 to any port 8000
  • Debian 10 Buster 10.5 released

    Linux debian linux
    1
    0 Stimmen
    1 Beiträge
    239 Aufrufe
    Niemand hat geantwortet
  • Thunderbird - Schriftgröße der Mailansicht dauerhaft ändern

    Linux linux thunderbird
    1
    0 Stimmen
    1 Beiträge
    227 Aufrufe
    Niemand hat geantwortet
  • Redis Replication

    Angeheftet Verschoben Redis linux redis
    4
    1 Stimmen
    4 Beiträge
    626 Aufrufe
    FrankMF
    Um die Verbindung zu testen, kann man folgende Befehle nutzen. redis-cli -h 10.1.1.0 -p 6379 -a <PASSWORD> und telnet 10.1.1.0 6379