thomas_maurice.ansible_role_gitea

Rôle Ansible gitea - Installer un serveur gitea

État de construction Rôle Ansible Rôle Ansible Score de qualité Ansible

Ce rôle installe et gère un serveur gitea - Code source & captures d'écran.

Gitea est une application web pour les dépôts Git écrite en Golang, avec une interface similaire à GitHub.

Exemple d'utilisation dans un playbook

Le code suivant a été testé avec Debian 8, il devrait fonctionner aussi sur Ubuntu.

- name: "Installer gitea"
  hosts: all
  vars:
    gitea_user: "gitea"
    gitea_home: "/var/lib/gitea"
    # Pour limiter vos utilisateurs à 30 dépôts
    gitea_user_repo_limit: 30
    # Ne pas utiliser de CDN public pour les actifs du frontend
    gitea_offline_mode: true

    # Quelques options de 'rendu' pour vos URLs
    gitea_http_domain: git.votredomaine.fr
    gitea_root_url: https://git.votredomaine.fr

    # Ici nous supposons que nous sommes derrière un proxy inverse qui va
    # gérer https pour nous, donc nous écoutons sur localhost:3000 en HTTP
    gitea_protocol: http
    gitea_http_listen: 127.0.0.1
    gitea_http_port: 3000

    # Configuration du serveur SSH
    gitea_ssh_listen: 0.0.0.0
    gitea_ssh_port: 2222
    # Pour le rendu des URL à nouveau
    gitea_ssh_domain: git.votredomaine.fr
    gitea_start_ssh: true

    gitea_secret_key: 3sp00ky5me
    gitea_disable_gravatar: true
    # Pour permettre l'enregistrement de votre premier utilisateur
    gitea_disable_registration: false
    gitea_require_signin: true
    gitea_enable_captcha: true

    gitea_show_user_email: false
  roles:
    - gitea

Options plus détaillées

Général

  • gitea_version_check: Vérifier si la version installée != gitea_version avant de commencer le téléchargement binaire
  • gitea_user: Utilisateur UNIX utilisé par Gitea
  • gitea_group: Groupe UNIX utilisé par Gitea
  • gitea_home: Répertoire de base pour le travail
  • gitea_dl_url: L'URL d'où le binaire gitea compilé sera téléchargé
  • gitea_systemd_cap_net_bind_service: Ajoute AmbientCapabilities=CAP_NET_BIND_SERVICE au fichier de service systemd
  • gitea_extra_config: Configuration supplémentaire

Apparence

  • gitea_app_name: Nom de l'application affiché
  • gitea_show_user_email: Voulez-vous afficher les adresses e-mail ? (vrai/faux)
  • gitea_disable_gravatar: Voulez-vous désactiver Gravatar ? (pour des raisons de confidentialité, etc.) (vrai/faux)
  • gitea_offline_mode: Même chose mais pour désactiver les CDN pour les actifs frontend (vrai/faux)
  • gitea_disable_registration: Voulez-vous désactiver l'enregistrement des utilisateurs ? (vrai/faux)
  • gitea_only_allow_external_registration: Voulez-vous forcer l'enregistrement uniquement via des services tiers ? (vrai/faux)
  • gitea_show_registration_button: Voulez-vous afficher le bouton d'enregistrement ? (vrai/faux)
  • gitea_require_signin: Avez-vous besoin d'une connexion pour voir les dépôts (même publics) ? (vrai/faux)
  • gitea_enable_captcha: Voulez-vous activer les captchas ? (vrai/faux)
  • gitea_themes: Liste des thèmes activés
  • gitea_theme_default: Thème par défaut

Sécurité

  • gitea_secret_key: Clé secrète pour les cookies
  • gitea_internal_token: Jeton API interne
  • gitea_disable_git_hooks: Voulez-vous désactiver l'interface pour ajouter des hooks git ? Si activé, cela pourrait être une faille de sécurité car cela peut être utilisé pour RCE. Par défaut à vrai (vrai/faux)

Limites

  • gitea_user_repo_limit: Limiter le nombre de dépôts qu'un utilisateur peut avoir (-1 pour illimité)

Configuration HTTP

  • gitea_http_domain: Domaine HTTP (affiché dans vos URL de clonage, juste le domaine comme git.foo.fr)
  • gitea_root_url: URL racine utilisée pour accéder à votre application web (URL complète)
  • gitea_protocol: Protocole d'écoute (http/https)
  • gitea_http_listen: Adresse de liaison
  • gitea_http_port: Port de liaison
  • gitea_disable_http_git: Désactiver l'utilisation de Git sur HTTP ? (vrai/faux)

Configuration SSH

  • gitea_ssh_listen: Adresse de liaison pour le serveur SSH
  • gitea_ssh_domain: Domaine SSH (affiché dans vos URL de clonage)
  • gitea_start_ssh: Voulez-vous démarrer un serveur SSH intégré ? (vrai/faux)
  • gitea_ssh_port: Port de liaison SSH

Configuration de la base de données

  • gitea_db_type: Type de base de données, peut être mysql, postgres ou sqlite3
  • gitea_db_host: Chaîne d'hôte de base de données host:port ou /run/postgresql/ lors de la connexion à postgres via un socket unix local (authentification par peer)
  • gitea_db_name: Nom de la base de données
  • gitea_db_user: Nom d'utilisateur de la base de données
  • gitea_db_password: Mot de passe de la base de données
  • gitea_db_ssl: Utiliser SSL ? (uniquement pour postgres!). Peut être require, disable, verify-ca ou verify-full
  • gitea_db_path: Chemin de la base de données, si vous utilisez sqlite3. La valeur par défaut est généralement suffisante.

Configuration du messager

  • gitea_mailer_enabled: Activer ou non le messager. Par défaut : faux
  • gitea_mailer_skip_verify: Ignorer la vérification TLS du certificat SMTP (vrai/faux)
  • gitea_mailer_tls_enabled: Activer TLS pour les connexions SMTP (vrai/faux)
  • gitea_mailer_host: Nom d'hôte et port du serveur SMTP
  • gitea_mailer_user: Nom d'utilisateur du serveur SMTP
  • gitea_mailer_password: Mot de passe du serveur SMTP
  • gitea_mailer_from: Adresse e-mail de l'expéditeur
  • gitea_enable_notify_mail: Cela permet d'envoyer un e-mail aux observateurs d'un dépôt lorsqu'un événement se produit. Par défaut : faux
  • gitea_mail_default: Configuration par défaut pour les notifications par e-mail pour les utilisateurs (configurable par l'utilisateur). Options : activé, sur mention, désactiver (Par défaut : sur mention)
  • gitea_autowatch_new_repo: Activez ceci pour que tous les utilisateurs de l'organisation suivent les nouveaux dépôts lorsque ceux-ci sont créés (Par défaut : faux)
  • gitea_autowatch_on_change: Activez ceci pour que les utilisateurs suivent un dépôt après leur premier engagement (Par défaut : vrai)
  • gitea_show_mailstones_dashboard: Activez ceci pour afficher la page du tableau de bord des jalons - une vue de tous les jalons de l'utilisateur (Par défaut : vrai)

Configuration de Fail2Ban

Si activé, cela déploiera un filtre et une configuration de prison fail2ban pour Gitea comme décrit dans la Documentation de Gitea.

Comme cela ne déploie que des fichiers de configuration, fail2ban doit déjà être installé sinon le rôle échouera.

  • gitea_fail2ban_enabled: Faut-il déployer la configuration fail2ban ou non
  • gitea_fail2ban_jail_maxretry: Paramètre maxretry de la prison fail2ban. Par défaut : 10
  • gitea_fail2ban_jail_findtime: Paramètre findtime de la prison fail2ban. Par défaut : 3600
  • gitea_fail2ban_jail_bantime: Paramètre bantime de la prison fail2ban. Par défaut : 900
  • gitea_fail2ban_jail_action: Paramètre action de la prison fail2ban. Par défaut : iptables-allports

Configuration du fournisseur Oauth2

  • gitea_oauth2_enabled: Activer le fournisseur Oauth2 (vrai/faux)
  • gitea_oauth2_jwt_secret: Secret JWT Oauth2. Peut être généré avec gitea generate secret JWT_SECRET

Configuration GIT LFS

  • gitea_lfs_enabled: Activer GIT LFS (système de fichiers de grande taille)
  • gitea_lfs_mode: le lfs doit être en mode hors ligne (vrai/faux)
  • gitea_lfs_secret: Secret JWT pour une utilisation distante de LFS

Configuration de l'endpoint des métriques

  • gitea_metrics_enabled: Activer l'endpoint des métriques
  • gitea_metrics_token: Jeton Bearer pour le travail de collecte de Prometheus

Configuration de l'indexeur de dépôts

  • gitea_repo_indexer_enabled: Faut-il activer l'indexeur de dépôts (recherche de code). Par défaut : faux
  • gitea_repo_indexer_include: Modèles glob à inclure dans l'index (liste séparée par des virgules). Par défaut : "" (tous les fichiers)
  • gitea_repo_indexer_exclude: Modèles glob à exclure de l'index (liste séparée par des virgules). Par défaut : "" (aucun fichier)
  • gitea_repo_exclude_vendored: Exclure les fichiers vendus de l'index. Par défaut : vrai
  • gitea_repo_indexer_max_file_size: Taille maximale des fichiers à indexer (en octets). Par défaut : 1048576 (1 Mo)

Sauvegarde lors de la mise à niveau

  • gitea_backup_on_upgrade: Facultativement, une sauvegarde peut être créée à chaque mise à jour de gitea. Par défaut : faux
  • gitea_backup_location: Où stocker la sauvegarde de gitea si une est créée avec ce rôle. Par défaut : {{ gitea_home }}/backups/

Contribuer

N'hésitez pas à créer une pull request, et en cas de doute, vous pouvez me contacter sur Twitter @thomas_maurice.

Je suis heureux de corriger tout problème signalé, ou encore mieux, de revoir vos pull requests :)

Test

Les tests utilisent molecule. Pour commencer les tests, installez d'abord les dépendances. Je vous recommande d'utiliser un environnement virtuel pour cela, mais qui suis-je pour vous dire quoi faire.

pip install pew # installer pew pour gérer les venvs
pew new ansible # créer le venv
pip install -r requirements-travis.txt # installer les exigences
molecule test # Exécuter les tests

Remarque : Vous devez avoir Docker installé

Limites de test connues

Actuellement, il s'agit principalement de valider que le playbook s'exécute, que le lint est correct, et ce genre de choses. Comme cela s'exécute dans Docker, nous n'avons actuellement aucun moyen de vérifier si le service est effectivement lancé par systemd et ainsi de suite. Cela doit être travaillé.

Licence

Copyright 2019-present Thomas Maurice

La redistribution et l'utilisation en source et en binaire, avec ou sans modification, sont autorisées à condition que les conditions suivantes soient respectées :

1. Les redistributions de code source doivent conserver le présent avis de droit d'auteur, cette liste de conditions et le présent avertissement.

2. Les redistributions sous forme binaire doivent reproduire le présent avis de droit d'auteur, cette liste de conditions et le présent avertissement dans la documentation et/ou d'autres matériaux fournis avec la distribution.

3. Ni le nom du titulaire du droit d'auteur ni les noms de ses contributeurs ne peuvent être utilisés pour approuver ou promouvoir des produits dérivés de ce logiciel sans autorisation écrite préalable spécifique.

CE LOGICIEL EST FOURNI PAR LES DÉTENTEURS DES DROITS D'AUTEUR ET LES CONTRIBUTEURS "EN L'ÉTAT" ET TOUTES GARANTIES EXPRESSES OU IMPLICITES, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES IMPLICITES DE QUALITÉ MARCHANDE ET D'ADÉQUATION À UN OBJECTIF PARTICULIER SONT DÉCLARÉES NULLES ET NON AVENUES. EN NULLE CIRCONSTANCE, LE DÉTENTEUR DES DROITS D'AUTEUR OU LES CONTRIBUTEURS NE POURRONT ÊTRE TENUS RESPONSABLES D'AUCUN DOMMAGE DIRECT, INDIRECT, ACCESSOIRE, SPÉCIAL, EXEMPLAIRE OU CONSÉCUTIF (Y COMPRIS, MAIS SANS S'Y LIMITER, L'ACQUISITION DE BIENS OU SERVICES DE SUBSTITUTION ; PERTE D'UTILISATION, DE DONNÉES OU DE PROFITS ; OU INTERRUPTION D'ACTIVITÉ) QUELLE QU'EN SOIT LA CAUSE ET SUR QUELQUE THÉORIE DE RESPONSABILITÉ QUE CE SOIT, QU'ELLE SOIT EN CONTRAT, EN RESPONSABILITÉ STRICTE OU EN DELICT (Y COMPRIS NEGLIGENTE OU AUTRE) RÉSULTANT EN QUELQUE MANIERE DE L'UTILISATION DE CE LOGICIEL, MÊME SI AVERTIS DE LA POSSIBILITÉ D'UN TEL DOMMAGE.
Installer
ansible-galaxy install thomas_maurice.ansible_role_gitea
Licence
bsd-3-clause
Téléchargements
82.6k
Propriétaire
Lead Site Reliability Engineer