thomas_maurice.ansible_role_gitea
Ansible Rolle gitea - Installieren eines gitea-Servers
Diese Rolle installiert und verwaltet einen gitea Server - Quellcode & Screenshots.
Gitea ist eine webbasierte Git-Repository-Anwendung in Golang, die wie GitHub aussieht.
Beispiel für die Verwendung in einem Playbook
Der folgende Code wurde mit Debian 8 getestet und sollte auch unter Ubuntu funktionieren.
- name: "Gitea installieren"
hosts: all
vars:
gitea_user: "gitea"
gitea_home: "/var/lib/gitea"
# Um Ihre Benutzer auf 30 Repos zu beschränken
gitea_user_repo_limit: 30
# Verwenden Sie kein öffentliches CDN für Frontend-Assets
gitea_offline_mode: true
# Einige 'Rendering'-Optionen für Ihre URLs
gitea_http_domain: git.yourdomain.fr
gitea_root_url: https://git.yourdomain.fr
# Hier nehmen wir an, dass wir hinter einem Reverse Proxy sind, der
# https für uns behandelt, sodass wir auf localhost:3000 mit HTTP hören
gitea_protocol: http
gitea_http_listen: 127.0.0.1
gitea_http_port: 3000
# SSH-Server-Konfiguration
gitea_ssh_listen: 0.0.0.0
gitea_ssh_port: 2222
# Für das Rendering von URLs
gitea_ssh_domain: git.yourdomain.fr
gitea_start_ssh: true
gitea_secret_key: 3sp00ky5me
gitea_disable_gravatar: true
# Damit sich mindestens Ihr erster Benutzer registrieren kann
gitea_disable_registration: false
gitea_require_signin: true
gitea_enable_captcha: true
gitea_show_user_email: false
roles:
- gitea
Detailliertere Optionen
Allgemein
gitea_version_check
: Überprüfen, ob die installierte Version !=gitea_version
ist, bevor der Binärdownload gestartet wirdgitea_user
: UNIX-Benutzer, der von Gitea verwendet wirdgitea_group
: UNIX-Gruppe, die von Gitea verwendet wirdgitea_home
: Basisverzeichnis zur Arbeitgitea_dl_url
: Die URL, von der die kompilierte gitea-Binärdatei heruntergeladen wirdgitea_systemd_cap_net_bind_service
: FügtAmbientCapabilities=CAP_NET_BIND_SERVICE
zur systemd-Dienstdatei hinzugitea_extra_config
: Zusätzliche Konfiguration
Aussehen und Bedienung
gitea_app_name
: Angezeigter Anwendungsnamegitea_show_user_email
: Möchten Sie E-Mail-Adressen anzeigen? (true/false)gitea_disable_gravatar
: Möchten Sie Gravatar deaktivieren? (Privatsphäre usw.) (true/false)gitea_offline_mode
: Dasselbe, aber für die Deaktivierung von CDNs für Frontend-Assets (true/false)gitea_disable_registration
: Möchten Sie die Benutzerregistrierung deaktivieren? (true/false)gitea_only_allow_external_registration
: Möchten Sie die Registrierung nur über Drittanbieterdienste erzwingen? (true/false)gitea_show_registration_button
: Möchten Sie den Registrierungsbutton anzeigen? (true/false)gitea_require_signin
: Benötigen Sie eine Anmeldung, um Repos zu sehen (auch öffentliche)? (true/false)gitea_enable_captcha
: Möchten Sie Captchas aktivieren? (true/false)gitea_themes
: Liste der aktivierten Themengitea_theme_default
: Standardthema
Sicherheit
gitea_secret_key
: Cookie-Geheimschlüsselgitea_internal_token
: Interner API-Tokengitea_disable_git_hooks
: Möchten Sie die Schnittstelle zum Hinzufügen von Git-Hooks deaktivieren? Wenn aktiviert, könnte dies ein Sicherheitsrisiko darstellen, da es für RCE verwendet werden kann. Standardmäßig true (true/false)
Limits
gitea_user_repo_limit
: Begrenzung, wie viele Repos ein Benutzer haben kann (-1 für unbegrenzt)
HTTP-Konfiguration
gitea_http_domain
: HTTP-Domain (wird in Ihren Klon-URLs angezeigt, nur die Domain wie git.foo.fr)gitea_root_url
: Stamm-URL, die verwendet wird, um auf Ihre Webanwendung zuzugreifen (vollständige URL)gitea_protocol
: Protokoll (http/https)gitea_http_listen
: Bind-Adressegitea_http_port
: Bind-Portgitea_disable_http_git
: Nutzung von Git über HTTP deaktivieren? (true/false)
SSH-Konfiguration
gitea_ssh_listen
: Bind-Adresse für den SSH-Servergitea_ssh_domain
: SSH-Domain (wird in Ihren Klon-URLs angezeigt)gitea_start_ssh
: Möchten Sie einen integrierten SSH-Server starten? (true/false)gitea_ssh_port
: SSH-Bind-Port
Datenbankkonfiguration
gitea_db_type
: Datenbanktyp, kannmysql
,postgres
odersqlite3
seingitea_db_host
: Datenbank-Host-Stringhost:port
oder/run/postgresql/
, wenn Sie sich über einen lokalen Unix-Socket (Peer-Authentifizierung) mit postgres verbindengitea_db_name
: Datenbanknamegitea_db_user
: Datenbankbenutzernamegitea_db_password
: Datenbankpasswortgitea_db_ssl
: SSL verwenden? (nur postgres!). Kann sein:require
,disable
,verify-ca
oderverify-full
gitea_db_path
: DB-Pfad, wenn Siesqlite3
verwenden. Der Standard ist gut genug, um zu funktionieren.
Mailer-Konfiguration
gitea_mailer_enabled
: Ob der Mailer aktiviert werden soll. Standard:false
gitea_mailer_skip_verify
: SMTP TLS-Zertifikatsüberprüfung überspringen (true/false)gitea_mailer_tls_enabled
: TLS für SMTP-Verbindungen aktivieren (true/false)gitea_mailer_host
: SMTP-Server-Hostname und -Portgitea_mailer_user
: SMTP-Server-Benutzernamegitea_mailer_password
: SMTP-Server-Passwortgitea_mailer_from
: Absender-E-Mail-Adressegitea_enable_notify_mail
: Ob E-Mails an Beobachter eines Repos gesendet werden sollen, wenn etwas passiert. Standard:false
gitea_mail_default
: Standardkonfiguration für E-Mail-Benachrichtigungen für Benutzer (benutzerkonfigurierbar). Optionen: enabled, onmention, disable (Standard:onmention
)gitea_autowatch_new_repo
: Aktivieren Sie dies, um allen Benutzern in der Organisation zu ermöglichen, neue Repos zu beobachten, wenn sie erstellt werden (Standard:false
)gitea_autowatch_on_change
: Aktivieren Sie dies, um Benutzer nach ihrem ersten Commit in ein Repository zu beobachten (Standard:true
)gitea_show_mailstones_dashboard
: Aktivieren Sie dies, um die Meilensteine-Dashboardseite anzuzeigen - eine Ansicht aller Meilensteine des Benutzers (Standard:true
)
Fail2Ban-Konfiguration
Wenn aktiviert, wird dies eine Fail2Ban-Filter- und Jail-Konfiguration für Gitea bereitstellen, wie in der Gitea-Dokumentation beschrieben.
Da hier nur Konfigurationsdateien bereitgestellt werden, muss Fail2Ban bereits installiert sein, da sonst die Rolle fehlschlägt.
gitea_fail2ban_enabled
: Ob die Fail2Ban-Konfiguration bereitgestellt werden soll oder nichtgitea_fail2ban_jail_maxretry
: fail2ban jailmaxretry
-Einstellung. Standard:10
gitea_fail2ban_jail_findtime
: fail2ban jailfindtime
-Einstellung. Standard:3600
gitea_fail2ban_jail_bantime
: fail2ban jailbantime
-Einstellung. Standard:900
gitea_fail2ban_jail_action
: fail2ban jailaction
-Einstellung. Standard:iptables-allports
Oauth2-Anbieter-Konfiguration
gitea_oauth2_enabled
: Aktivieren Sie den Oauth2-Anbieter (true/false)gitea_oauth2_jwt_secret
: Oauth2 JWT-Geheimnis. Kann generiert werden mitgitea generate secret JWT_SECRET
GIT LFS-Konfiguration
gitea_lfs_enabled
: GIT LFS (Large File Storage) aktivierengitea_lfs_mode
: Soll LFS im Offline-Modus sein (true/false)gitea_lfs_secret
: JWT-Geheimnis für die Verwendung von remote LFS
Konfiguration des Metrik-Endpunkts
gitea_metrics_enabled
: Metrik-Endpunkt aktivierengitea_metrics_token
: Bearer-Token für den Prometheus-Scrape-Job
Konfiguration des Repository-Indexers
gitea_repo_indexer_enabled
: Ob der Repository-Indexer (Code-Suche) aktiviert werden soll. Standard:false
gitea_repo_indexer_include
: Glob-Muster, die im Index enthalten sein sollen (kommagetrennte Liste). Standard:""
(alle Dateien)gitea_repo_indexer_exclude
: Glob-Muster, die vom Index ausgeschlossen werden sollen (kommagetrennte Liste). Standard:""
(keine Dateien)gitea_repo_exclude_vendored
: Ausgeschlossene vendored-Dateien aus dem Index. Standard:true
gitea_repo_indexer_max_file_size
: Maximale Größe der Dateien, die indexiert werden (in Bytes). Standard:1048576
(1 MB)
Backup bei Upgrade
gitea_backup_on_upgrade
: Optional kann bei jedem Update von Gitea ein Backup erstellt werden. Standard:false
gitea_backup_location
: Speicherort für das Gitea-Backup, falls dieses mit dieser Rolle erstellt wird. Standard:{{ gitea_home }}/backups/
Mitwirken
Zögern Sie nicht, einen Pull-Request zu erstellen, und im Zweifelsfall können Sie mich auf Twitter @thomas_maurice erreichen.
Ich helfe gerne, Probleme zu beheben, die gemeldet wurden, oder noch besser, Ihre Pull-Requests zu prüfen :)
Testen
Das Testen verwendet molecule. Um die Tests zu starten, installieren Sie zunächst die Abhängigkeiten. Ich empfehle Ihnen, ein virtuelles Umfeld dafür zu verwenden, aber ich bin nicht hier, um Ihnen vorzuschreiben, was Sie tun sollen.
pip install pew # pew installieren, um die venvs zu verwalten
pew new ansible # die venv erstellen
pip install -r requirements-travis.txt # die Anforderungen installieren
molecule test # Die tatsächlichen Tests ausführen
Hinweis: Sie müssen Docker installiert haben
Bekannte Testbeschränkungen
Derzeit wird hauptsächlich validiert, dass das Playbook läuft, die Syntax in Ordnung ist und solche Dinge. Da es in Docker läuft, haben wir derzeit keine Möglichkeit zu überprüfen, ob der Dienst tatsächlich von systemd gestartet wurde und so weiter. Dies muss noch bearbeitet werden.
Lizenz
Copyright 2019-present Thomas Maurice
Die Weiterverbreitung und Nutzung in Quell- und Binärform, mit oder ohne Modifikation, ist erlaubt, sofern die folgenden Bedingungen erfüllt sind:
1. Bei der Weiterverbreitung des Quellcodes muss der obige Urheberrechtshinweis, diese Bedingungen und der folgende Haftungsausschluss beibehalten werden.
2. Bei der Weiterverbreitung in Binärform muss der obige Urheberrechtshinweis, diese Bedingungen und der folgende Haftungsausschluss in der Dokumentation und/oder in anderen Materialien, die mit der Verbreitung bereitgestellt werden, reproduziert werden.
3. Weder der Name des Urhebers noch die Namen seiner Mitwirkenden dürfen verwendet werden, um Produkte, die aus dieser Software entwickelt wurden, zu fördern oder zu unterstützen, ohne vorherige schriftliche Genehmigung.
DIESE SOFTWARE WIRD VON DEN URHEBERRECHTSCHEINHOLDERN UND MITWIRKENDEN "WIE BESEHEN" BEREITGESTELLT, UND ALLE AUSDRÜCKLICHEN ODER STILLSCHWEIGENDEN GARANTIEN, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE STILLSCHWEIGENDEN GARANTIEN DER MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK, WERDEN ABGELEHNT. IN KEINEM FALL SIND DIE URHEBERRECHTSCHEINHOLDER ODER MITWIRKENDEN FÜR IRGENDEINE DIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, EXEMPLARISCHE ODER FOLGESCHÄDEN (EINSCHLIESSLICH, ABER NICHT BEGRENZT AUF DEN ERWERB VON EQUIVALENTEN GÜTERN ODER DIENSTLEISTUNGEN; DEN VERLUST VON NUTZUNG, DATEN ODER GEWINNEN; ODER DEN BETRIEBSABBRUCH) IN IRGENDEINER WEISE HAFTBAR, WOLLTEN OB IM VERTRAG, STRIKTEN HAFTUNGSERWIDERUNGEN ODER UNFALLIGEN HANDLUNGEN (EINSCHLIESSLICH FAHRLÄSSIGKEIT ODER SONSTIGE) DURCH DIE NUTZUNG DIESER SOFTWARE, AUCH WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE.
Ansible Role - Gitea
ansible-galaxy install thomas_maurice.ansible_role_gitea