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:
- Github: github.com/roles-ansible/ansible_role_gitea
- Gitea: git.l3d.ch/ansible/ansible_role_gitea
Mehr dazu auf ansible.l3d.space
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.
Ansible role to configure and deploy gitea and forgejo, a painless self-hosted Git service.
ansible-galaxy install l3d.gitea