Nous utilisons le logiciel GitLab pour faire tourner https://code.ffdn.org/.
GitLab
GitLab est installé via le paquet « tout en un » Omnibus, nous l'avons donc installé sur une machine tout seul.
Machine virtuelle
FDN sponsorise la machine virtuelle mercure.ffdn.org:
- IPv4: 80.67.169.54
- IPv6: 2001:910:800::54
- CPU: 4x vCPU
- RAM: 6Go
- Disk: 60Go
Les comptes UNIX de youpi, taziden, zorun, sebian et capslock sont configurés sur l'interface web de proxmox (pour accéder à la console, stopper et démarrer la vm).
Les comptes UNIX sur la machine mercure, sont gérés par le playbook ansible users
, voir: https://code.ffdn.org/ffdn/adminsys/-/tree/master/ansible
Le mot de passe root est dans le password-store (du même dépôt GIT).
Le répertoire /etc
de mercure est géré par etckeeper, à chaque commit un hook envoie/sauvegarde dans un repo « GIT Bare » sur hermes (hermes.ffdn.org:/srv/nfs/backups/mercure.git
)
Installation de GitLab
Via les dépôts APT voir: https://docs.gitlab.com/omnibus/installation/.
La configuration de GitLab se fait dans le fichier /etc/gitlab/gitlab.rb
(suivie d'un gitlab-ctl reconfigure
).
Mise à jour
Les mises à jour sont simples, via le gestionnaire de paquets: apt update; apt dist-upgrade; apt autoremove --purge; apt clean
Sauvegardes
Configuré dans /etc/cron.daily/gitlab-backup
, nous utilisons la tâche rake
de GitLab pour tout sauvegarder /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
cette tâche crée une archive tar.gz dans /var/opt/gitlab/backups/
, chaque nuit une autre tâche cron envoie ces backups vers hermes.ffdn.org:/srv/nfs/backups/gitlab/
via rsync.
GitLab-Runner
Pour les fonctionnalités de « CI/CD » de GitLab, Lorraine Data Network sponsorise une machine virtuelle : hera.ffdn.org
- IPv4: 80.67.188.197
- IPv6: 2001:913:10:500::1
- CPU: 1x vCPU
- RAM: 2Go
- Disk: 20Go
GitLab-runner et docker sont installés sur cette machine via les dépôts APT, voir la doc externe : https://docs.gitlab.com/runner/.
Mise à jour
Les mises à jour sont simples, via le gestionnaire de paquets: apt update; apt dist-upgrade; apt autoremove --purge; apt clean