thomas_maurice.ansible_role_gitea
Rôle Ansible gitea - Installer un serveur gitea
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 binairegitea_user
: Utilisateur UNIX utilisé par Giteagitea_group
: Groupe UNIX utilisé par Giteagitea_home
: Répertoire de base pour le travailgitea_dl_url
: L'URL d'où le binaire gitea compilé sera téléchargégitea_systemd_cap_net_bind_service
: AjouteAmbientCapabilities=CAP_NET_BIND_SERVICE
au fichier de service systemdgitea_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ésgitea_theme_default
: Thème par défaut
Sécurité
gitea_secret_key
: Clé secrète pour les cookiesgitea_internal_token
: Jeton API internegitea_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 liaisongitea_http_port
: Port de liaisongitea_disable_http_git
: Désactiver l'utilisation de Git sur HTTP ? (vrai/faux)
Configuration SSH
gitea_ssh_listen
: Adresse de liaison pour le serveur SSHgitea_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 êtremysql
,postgres
ousqlite3
gitea_db_host
: Chaîne d'hôte de base de donnéeshost: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éesgitea_db_user
: Nom d'utilisateur de la base de donnéesgitea_db_password
: Mot de passe de la base de donnéesgitea_db_ssl
: Utiliser SSL ? (uniquement pour postgres!). Peut êtrerequire
,disable
,verify-ca
ouverify-full
gitea_db_path
: Chemin de la base de données, si vous utilisezsqlite3
. 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 SMTPgitea_mailer_user
: Nom d'utilisateur du serveur SMTPgitea_mailer_password
: Mot de passe du serveur SMTPgitea_mailer_from
: Adresse e-mail de l'expéditeurgitea_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 nongitea_fail2ban_jail_maxretry
: Paramètremaxretry
de la prison fail2ban. Par défaut :10
gitea_fail2ban_jail_findtime
: Paramètrefindtime
de la prison fail2ban. Par défaut :3600
gitea_fail2ban_jail_bantime
: Paramètrebantime
de la prison fail2ban. Par défaut :900
gitea_fail2ban_jail_action
: Paramètreaction
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é avecgitea 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étriquesgitea_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.
Ansible Role - Gitea
ansible-galaxy install thomas_maurice.ansible_role_gitea