l3d.gitea

Ansible Rolle Gitea/Forgejo

============================

Diese Rolle installiert und verwaltet Gitea oder Forgejo. Ein schmerzfreier, selbstgehosteter Git-Service. Gitea ist eine von der Community verwaltete, leichte Code-Hosting-Lösung, die in Go geschrieben ist. Forgejo ist ein Fork davon.
Quellcode & Screenshots Gitea
Quellcode Forgejo
Diese Rolle ist auch Teil der Ansible-Sammlung l3d.git.

Spiegel

Die Rolle ist gespiegelt zu:

Beispiel Nutzung in einem Playbook

Der folgende Code wurde mit dem neuesten stabilen Debian getestet und sollte auch auf Ubuntu und RedHat funktionieren.

# ansible-galaxy role install l3d.gitea

- name: "Installiere Gitea"
  hosts: git.example.com
  roles:
    - {role: l3d.gitea, tags: gitea}
  vars:
    gitea_fqdn: 'git.example.com'
    gitea_root_url: 'https://git.example.com'
    gitea_protocol: http
    gitea_start_ssh: true

Auswahl zwischen Giteas integriertem SSH und dem Host SSH-Server

Gitea verfügt über einen integrierten SSH-Server, der auf Port 2222 läuft (um Konflikte mit dem Host-SSH-Server zu vermeiden, der normalerweise auf Port 22 läuft). Dieser wird standardmäßig in dieser Rolle verwendet und führt zu einer SSH-Klon-URL von gitea@<fqdn>:2222:<user>/<repo>.git, da `gitea der Standard-Benutzer ist.

Um eine "saubere" SSH-URL wie git@<fqdn>:<user>/<repo>.git zu haben, kann der Host-SSH-Server verwendet werden:

gitea_ssh_port: 22 # vorausgesetzt, der Host-SSH-Server läuft auf Port 22
gitea_user: git # sonst gibt es Berechtigungsprobleme
gitea_start_ssh: false # um den integrierten SSH-Server nicht zu starten

Diese Konfiguration funktioniert mit neuen Installationen. Beim Migrieren von einer laufenden Instanz mit bestehenden SSH-Schlüsseln vom integrierten SSH-Server zum Host-SSH-Server muss sichergestellt werden, dass der Host-SSH-Server läuft und dass der gitea_user die notwendigen Berechtigungen hat, um auf die Repository-Daten und die Schlüssel (gespeichert in <gitea_home>/.ssh/) zuzugreifen.

Variablen

Hier sind einige Einblicke in die Variablen dieser Gitea-Rolle. Für die genaue Funktion einiger Variablen und die Möglichkeit, weitere Optionen hinzuzufügen, empfehlen wir einen Blick auf dieses Konfigurations-Infoblatt.

Wahl zwischen Gitea und Forgejo

Es gibt einen Fork von Gitea namens Forgejo. Warum? Lesen Sie die Forgejo FAQ.
Sie haben die Möglichkeit, zwischen Gitea und Forgejo zu wählen, indem Sie die Variable gitea_fork anpassen.

Variablenname Standardwert Beschreibung
gitea_fork gitea Optional, um Forgejo anstelle von Gitea zu installieren, indem Sie diesen Wert auf forgejo setzen.

Gitea Update-Mechanismus

Um zu bestimmen, welche Gitea-Version installiert werden soll, können Sie zwischen zwei Varianten wählen. Entweder Sie definieren genau, welche Version Sie installieren oder Sie verwenden die Option latest, um immer die neueste Version von den Gitea-Releases zu installieren.

Forgejo Update-Mechanismus

Es wird empfohlen, genau zu definieren, welche Forgejo-Version Sie installieren möchten. Sehen Sie sich die Forgejo-Releases für die korrekte Verwendung in gitea_version an, z.B. v1.21.5.

Gitea Update

Variablenname Standardwert Beschreibung
gitea_version latest Definieren Sie entweder die genaue Version, die installiert werden soll (z.B. 1.16.0) oder verwenden Sie latest (Standard), um die neueste Version zu installieren.
gitea_version_check true Überprüfen, ob die installierte Version != gitea_version ist, bevor der Download der Binärdatei gestartet wird.
gitea_gpg_key 7C9E68152594688862D62AF62D9AE806EC1592E2 Der GPG-Schlüssel, mit dem die Gitea-Binärdatei signiert ist.
gitea_gpg_server hkps://keys.openpgp.org Ein GPG-Schlüsselserver, von dem diese Rolle den GPG-Schlüssel herunterladen kann.
gitea_backup_on_upgrade false Optional kann bei jedem Update von Gitea ein Backup erstellt werden.

Gitea in der Linux-Welt

Variablenname Standardwert Beschreibung
gitea_group gitea Primäre UNIX-Gruppe, die von Gitea verwendet wird.
gitea_home /var/lib/gitea Basisverzeichnis für die Arbeit.
gitea_user gitea UNIX-Benutzer, der von Gitea verwendet wird.

Anforderungen

Diese Rolle verwendet die ansible.builtin und community.general Ansible-Sammlungen. Um die neueste Forgejo/Gitea-Version herunterzuladen, verwenden wir json_query. Dies erfordert, dass jmespath verfügbar ist.

Python-Pakete

  • jmespath

Galaxy-Sammlungen

  • community.general

Beispiel für die Installation von Anforderungen

ansible-galaxy collection install --update --role-file requirements.yml
pip3 install --update jmespath

Mitwirken

Zögern Sie nicht, eine Pull-Anfrage zu erstellen. Bei Zweifeln können Sie mich über Mastodon erreichen @[email protected].
Ich helfe Ihnen gerne bei der Behebung von Problemen oder, noch besser, prüfe Ihre Pull-Anfragen.

Über das Projekt

Ansible role to configure and deploy gitea and forgejo, a painless self-hosted Git service.

Installieren
ansible-galaxy install l3d.gitea
Lizenz
bsd-3-clause
Downloads
151k
Besitzer
Ansible roles provide a framework for fully independent, or interdependent collections of variables,tasks,files,templates &modules. Here we maintain some. enjoy