Ansible-Rolle zum Verwalten von Gitea Servern.
Go to file
Marius Alwan Meyer ab52152834
All checks were successful
ansible-lint / Ansible Lint (push) Successful in 41s
always recreate; deprecate version tag
2024-10-25 16:09:21 +02:00
.gitea/workflows use major release tag instead of @main 2023-08-10 16:49:12 +02:00
handlers always recreate; deprecate version tag 2024-10-25 16:09:21 +02:00
tasks pull docker images before restart; don't recursively edit premissions; use base_path in docker-compose.yaml 2024-06-03 16:21:07 +02:00
templates always recreate; deprecate version tag 2024-10-25 16:09:21 +02:00
vars make ansible-lint happy 2023-04-28 22:30:47 +00:00
.ansible-lint [lint] don't error on line-length, empty-lines and new-line-at-end-of-file 2023-08-11 14:02:30 +02:00
.ansible-lint-ignore [lint] Ignoriere Fehler nicht mehr 2023-05-01 15:08:26 +00:00
README.md [breaking] definiere das Docker-Image Tag als Variable 2023-04-28 19:22:44 +00:00
requirements.yml include community.general 2023-08-10 17:51:20 +02:00

Ansible Gitea Setup

Gitea Setup als Ansible-Rolle. 🎉

TODO

  • Alle Umgebungsvariablen unterstützen.
  • Alle Datenbanken unterstützen oder eine bestimmet Datenbank unterstützen
    • von mysql zu mariadb migrieren?

Manuelle Schritte

Das alles muss man selber machen. ⬇️

Vorbereitung

  • Einen Reverse-Proxy einrichten

Benötigte Variablen

Damit die Rolle funktioniert muss eine Reihe an Variablen für alle Hosts bereitgestellt werden.

Variable Beschreibung Werte
gitea['hostname'] Gitea Hostname (String)
gitea['domain'] Gitea Domain (String)
gitea['app_name'] Titel für die Startseite (String)
gitea['database']['db_type'] Datenbanktyp (nur "mysql" unterstützt) (String)
gitea['database']['docker_image_tag'] Docker-Image Tag

Im Inventory sieht das dann in etwa so aus:

gitea:
  app_name: Beispiel Gitea Server
  hostname: gitea
  domain: int.example.com

Optionale Variablen

Gitea hat sehr viele Optionen, die per Umgabungsvariablen gesetzt werden. Einige davon werden von dieser Rolle unterstützt. Welche Variablen genau unterstützt werden, kann man in diesem Template sehen.

Eine Besonderheit: Booleans der Gitea Konfiguration müssen als String angegeben werden, da sich Ansibles Boolean-Format von der Gitea Config unterscheidet.

Hier eine Beispielkonfiguration:

system:
  hostname: example-gitea
  domain: int.example.com
gitea:
  version: 1.17.3
  app_name: Beispiel Gitea
  service:
    disable_registration: "false"
    require_signin_view: "true"
    register_email_confirm: "false"
    default_keep_email_private: "false"
    default_allow_create_organization: "true"
    default_enable_timetracking: "true"
  repository:
    enable_push_create_user: "true"
    enable_push_create_org: "true"
    default_push_create_private: "false"
  attachment:
    enabled: "true"
    max_files: 5
    max_size: 10
  ssh:
    minimum_key_sizes:
      dsa: -1 # Disable DSA
      rsa: -1 # Disable RSA

Für die Definition des Datenbankpassworts werden zusätzlich noch die Variablen db_secret und db_root_secret aus dem Vault benötigt. Hier ein Beispiel-Vault, um die Struktur klar zu machen:

vault:
  example-gitea:
    ansible_become_pass: bgnafeuginae
    gitea:
      db_secret: riasneudfgisn
      db_root_secret: uiqfageksfhgfhgsk

Nachbereitung

  • Initiales Setup von Gitea via Web Gui durchführen.