thomas_maurice.ansible_role_gitea

Ansible Rolle gitea - Installieren eines gitea-Servers

Build-Status Ansible-Rolle Ansible-Rolle Ansible-Qualitätsbewertung

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 wird
  • gitea_user: UNIX-Benutzer, der von Gitea verwendet wird
  • gitea_group: UNIX-Gruppe, die von Gitea verwendet wird
  • gitea_home: Basisverzeichnis zur Arbeit
  • gitea_dl_url: Die URL, von der die kompilierte gitea-Binärdatei heruntergeladen wird
  • gitea_systemd_cap_net_bind_service: Fügt AmbientCapabilities=CAP_NET_BIND_SERVICE zur systemd-Dienstdatei hinzu
  • gitea_extra_config: Zusätzliche Konfiguration

Aussehen und Bedienung

  • gitea_app_name: Angezeigter Anwendungsname
  • gitea_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 Themen
  • gitea_theme_default: Standardthema

Sicherheit

  • gitea_secret_key: Cookie-Geheimschlüssel
  • gitea_internal_token: Interner API-Token
  • gitea_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-Adresse
  • gitea_http_port: Bind-Port
  • gitea_disable_http_git: Nutzung von Git über HTTP deaktivieren? (true/false)

SSH-Konfiguration

  • gitea_ssh_listen: Bind-Adresse für den SSH-Server
  • gitea_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, kann mysql, postgres oder sqlite3 sein
  • gitea_db_host: Datenbank-Host-String host:port oder /run/postgresql/, wenn Sie sich über einen lokalen Unix-Socket (Peer-Authentifizierung) mit postgres verbinden
  • gitea_db_name: Datenbankname
  • gitea_db_user: Datenbankbenutzername
  • gitea_db_password: Datenbankpasswort
  • gitea_db_ssl: SSL verwenden? (nur postgres!). Kann sein: require, disable, verify-ca oder verify-full
  • gitea_db_path: DB-Pfad, wenn Sie sqlite3 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 -Port
  • gitea_mailer_user: SMTP-Server-Benutzername
  • gitea_mailer_password: SMTP-Server-Passwort
  • gitea_mailer_from: Absender-E-Mail-Adresse
  • gitea_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 nicht
  • gitea_fail2ban_jail_maxretry: fail2ban jail maxretry-Einstellung. Standard: 10
  • gitea_fail2ban_jail_findtime: fail2ban jail findtime-Einstellung. Standard: 3600
  • gitea_fail2ban_jail_bantime: fail2ban jail bantime-Einstellung. Standard: 900
  • gitea_fail2ban_jail_action: fail2ban jail action-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 mit gitea generate secret JWT_SECRET

GIT LFS-Konfiguration

  • gitea_lfs_enabled: GIT LFS (Large File Storage) aktivieren
  • gitea_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 aktivieren
  • gitea_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.
Installieren
ansible-galaxy install thomas_maurice.ansible_role_gitea
Lizenz
bsd-3-clause
Downloads
82.6k
Besitzer
Lead Site Reliability Engineer