Avec la méthode d’installation snap pour SemaphoreUI devenant obsolète, j’ai récemment entrepris le processus de migration vers une autre méthode d’hébergement. J’ai choisi d’installer la version du package de Semaphore sur le même système. J’avais initialement prévu d’utiliser les capacités de sauvegarde et de restauration sur une nouvelle installation, mais j’ai rencontré plusieurs problèmes qui semblent tous être des bugs qui ont été corrigés mais qui impactent la dernière version de Semaphore dans le snap. J’ai ensuite emprunté une autre voie que je suggère ici d’ajouter comme un chemin documenté pour que d’autres puissent migrer.
Étapes pour migrer les fichiers Snap de Semaphore à utiliser avec le gestionnaire de packages ou l’installation binaire : NOTE : Cette méthode conserve boltdb comme base de données pour SemaphoreUI
- Connectez-vous en tant que
root
viasudo su -
ou une autre méthode valide. - Arrêtez la version snap de SemaphoreUI.
snap stop semaphore.semaphored
- Copiez les fichiers du snap vers un nouveau répertoire qui sera le répertoire personnel d’un nouvel utilisateur système appelé
semaphore
.cp -rf /root/snap/semaphore/common /home/semaphore
- Déplacez le dossier
repositories
vers le nouvel emplacement temporaire.mv -f /home/semaphore/repositories /tmp/semaphore
- Mettez à jour
config.json
avec les nouveaux chemins versdatabase.boltdb
et le dossier temporaire.sed -i 's/\/root\/snap\/semaphore\/common\/database.boltdb/\/home\/semaphore\/database.boltdb/' /home/semaphore/config.json
sed -i 's/\/root\/snap\/semaphore\/common\/repositories/\/tmp\/semaphore/' /home/semaphore/config.json
- Créez un nouvel utilisateur et groupe système appelé
semaphore
avec/home/semaphore
comme dossier personnel.adduser --system --group --home /home/semaphore --no-create-home --shell /bin/bash semaphore
- Transférez la propriété de
/home/semaphore
et de tous les fichiers à l’utilisateur système nouvellement créé.chown -R semaphore:semaphore /tmp/semaphore
chmod o-rwx /home/semaphore
chown -R semaphore:semaphore /home/semaphore
Une fois ces étapes terminées, installez et configurez Semaphore via le gestionnaire de packages en utilisant semaphore
comme utilisateur ou groupe de service. Tous les paramètres et les exécutions précédentes devraient apparaître dans la nouvelle instance de SemaphoreUI. Une fois satisfait, l’instance snap peut être supprimée via sudo snap remove semaphore
.
J’ai fini par automatiser toutes ces étapes à travers ce fichier bash :
#/bin/bash
#Fichier : migrate-semaphore-snap.sh
#Migrer SemaphoreUI de snap en tant que root vers package/binaire en tant que semaphore
sudo su -l root <<EOF
set -x
snap stop semaphore.semaphored
cp -rf /root/snap/semaphore/common /home/semaphore
mv -f /home/semaphore/repositories /tmp/semaphore
sed -i 's/\/root\/snap\/semaphore\/common\/database.boltdb/\/home\/semaphore\/database.boltdb/' /home/semaphore/config.json
sed -i 's/\/root\/snap\/semaphore\/common\/repositories/\/tmp\/semaphore/' /home/semaphore/config.json
adduser --system --group --home /home/semaphore --no-create-home --shell /bin/bash semaphore
cp /etc/skel/.* /home/semaphore/
chown -R semaphore:semaphore /tmp/semaphore
chmod o-rwx /home/semaphore
chown -R semaphore:semaphore /home/semaphore
EOF