GitLab sur Raspberry, les finitions : mail et sauvegarde (partie 3)

GitLab sur Raspberry, les finitions : mail et sauvegarde

Maintenant que GitLab est en place sur le Raspberry Pi, que vous pouvez gérer les projets, les utilisateurs, … depuis le réseau local et depuis l’extérieur avec la possibilité d’utiliser Git en HTTPS avec un certificat valide, il reste quelques détails à régler.

Nous en réglerons deux dans cet article : l’émission de mails et la sauvegarde automatique.

Configurer GitLab pour envoyer les mails

Configurons maintenant GitLab (il serait temps) pour qu’il puisse envoyer des e-mails, notamment les notifications de création d’utilisateurs, de tickets, …

Pour cela, il faut lui indiquer quel compte SMTP utiliser.

Tout se passe dans /etc/gitlab/gitlab.rb, utilisez simplement la configuration proposée par GitLab correspondant à ce que vous voulez faire.

Par exemple, vous pouvez utiliser votre compte gmail ou en créer un spécialement pour l’occasion chez votre fournisseur de boîtes mail, comme OVH.

Une fois la modification faite, n’oubliez pas de reconfigurer GitLab avec gitlab-ctl reconfigure.

Sauvegarde

Encore une fois, tout est expliqué dans l’excellente documentation de GitLab.

D’abord quelques explications

Pour lancer une sauvegarde manuellement :

sudo gitlab-rake gitlab:backup:create

Les sauvegardes sont créées dans /var/opt/gitlab/backups/.

Les fichiers de configuration doivent aussi être sauvegardés (le contenu de /etc/gitlab/).

Pour automatiser la sauvegarde, pour qu’elle se fasse toutes les nuits, créons un script.

Et tant qu’on y est, les fichiers de Let’s Encrypt (/etc/letsencrypt) et la configuration de dnsmasq vont aussi être archivés.

J’ai choisi de copier les sauvegardes sur un dossier partagé du réseau (CIFS) mais vous pouvez adapter si vous préférez le transfert par FTP, rsync, une copie sur le cloud, …

J’ai donc créé un partage et un utilisateur dédié sur le NAS pour copier les archives.

Le script de sauvegarde

Le principe est simple :

  • sauvegarde de GitLab avec gitlab-rake
  • montage du dossier partagé du NAS (et on s’arrête là en cas d’échec)
  • copie de la sauvegarde de GitLab
  • création d’une archive journalière directement sur le NAS avec les fichiers de configuration de dnsmasq, Let’s Encrypt, …
  • démontage du dossier partagé

Création d’un nouveau script :

sudo vim /chemin_vers_mon_script/backup.sh
gitlab-rake gitlab:backup:create

mount -t cifs //nas/backup /mnt/backup/ -o username=backup_user,password=azerty,file_mode=0777,dir_mode=0777

if [ $? -ne 0 ]; then
echo "Backup: can not mount"
exit 1
fi

find /var/opt/gitlab/backups/ -name "*" -exec cp -vu {} /mnt/backup/gitlab/ \;

tar czf /mnt/backup/pi-$(date "+%Y-%m-%d").tgz /etc/gitlab /etc/letsencrypt /etc/dnsmasq.conf /etc/hosts /etc/ethers /home/pi/admin_scripts

umount /mnt/backup

if [ $? -ne 0 ]; then
echo "Backup: can not Umount"
exit 2
fi

N’oubliez pas de changer le nom de l’utilisateur du NAS et son mot de passe (ici backup_user et azerty).

Profitez-en pour déclarer l’adresse du NAS et son nom d’hôte à dnsmasq.

Le dossier partagé doit contenir un dossier gitlab.

Le dossier backup dans /mnt/ doit exister :

mkdir /mnt/backup

Mettez le script en place dans les tâches planifiées :

sudo crontab -e

en ajoutant :

10 4 * * * sh /chemin_vers_mon_script/backup.sh > /chemin_vers_mon_script/backup.log

Pour éviter de remplir l’espace disque du Raspberry, GitLab peut effacer automatiquement les archives de sauvegarde après un certain temps :

sudo vim /etc/gitlab/gitlab.rb

Décommentez :

gitlab_rails['backup_keep_time'] = 604800

Les sauvegardes seront conservées 604800 secondes, soit pendant sept jours.

Après cette modification, reconfigurez bien GitLab avec gitlab-ctl reconfigure.

Le mot de la fin

Nous arrivons à la fin de cette trilogie sur GitLab et Raspberry Pi. Et qui dit trilogie dit : dès que j’en aurai l’idée, vous aurez droit à quelques nouveaux épisodes.

L'illustration de cet article est une image sous licence CC BY-SA 3.0 par Hansueli Krapf

Cet article vous a été utile ? Partage it !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Si vous le souhaitez, renseignez le champ 'Nom' de cette façon : 'VotreNom@VotreMotClef' pour obtenir une ancre optimisée pour les moteurs de recherche.