Con il metodo di installazione snap per SemaphoreUI che sta per essere deprecato, recentemente ho intrapreso il processo di migrazione verso un altro metodo di hosting. Ho scelto di installare la versione pacchetto di Semaphore sullo stesso sistema. Inizialmente avevo intenzione di utilizzare le capacità di backup e ripristino su una nuova installazione, ma ho riscontrato diversi problemi che sembrano essere bug già risolti, ma che influenzano l’ultima versione di Semaphore nello snap. Ho quindi seguito un percorso diverso che suggerisco qui di aggiungere come un percorso documentato per altri che desiderano migrare.

Passaggi per migrare i file Snap di Semaphore da utilizzare con il gestore pacchetti o installazione binaria: NOTA: Questo metodo mantiene boltdb come database per SemaphoreUI

  1. Accedi come root tramite sudo su - o un altro metodo valido
  2. Ferma la versione snap di SemaphoreUI snap stop semaphore.semaphored
  3. Copia i file dallo snap nella nuova directory che sarà la home directory di un nuovo utente di sistema chiamato semaphore cp -rf /root/snap/semaphore/common /home/semaphore
  4. Sposta la cartella repositories nella nuova posizione temporanea mv -f /home/semaphore/repositories /tmp/semaphore
  5. Aggiorna config.json con i nuovi percorsi per database.boltdb e la cartella temporanea 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
  6. Crea un nuovo utente e gruppo di sistema chiamato semaphore con /home/semaphore come sua cartella home adduser --system --group --home /home/semaphore --no-create-home --shell /bin/bash semaphore
  7. Trasferisci la proprietà di /home/semaphore e di tutti i file al nuovo utente di sistema chown -R semaphore:semaphore /tmp/semaphore chmod o-rwx /home/semaphore chown -R semaphore:semaphore /home/semaphore

Completati questi passaggi, installa e configura Semaphore tramite il gestore pacchetti utilizzando semaphore come utente o gruppo di servizio. Tutte le impostazioni e le esecuzioni precedenti dovrebbero apparire nella nuova istanza di SemaphoreUI. Una volta soddisfatti, l’istanza snap può essere rimossa tramite sudo snap remove semaphore.

Ho finito per automatizzare tutti questi passaggi tramite questo file bash:

#/bin/bash
#File: migrate-semaphore-snap.sh
#Migra SemaphoreUI da snap come root a pacchetto/binario come 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