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
- Accedi come
roottramitesudo su -o un altro metodo valido - Ferma la versione snap di SemaphoreUI
snap stop semaphore.semaphored - Copia i file dallo snap nella nuova directory che sarà la home directory di un nuovo utente di sistema chiamato
semaphorecp -rf /root/snap/semaphore/common /home/semaphore - Sposta la cartella
repositoriesnella nuova posizione temporaneamv -f /home/semaphore/repositories /tmp/semaphore - Aggiorna
config.jsoncon i nuovi percorsi perdatabase.boltdbe la cartella temporaneased -i 's/\/root\/snap\/semaphore\/common\/database.boltdb/\/home\/semaphore\/database.boltdb/' /home/semaphore/config.jsonsed -i 's/\/root\/snap\/semaphore\/common\/repositories/\/tmp\/semaphore/' /home/semaphore/config.json - Crea un nuovo utente e gruppo di sistema chiamato
semaphorecon/home/semaphorecome sua cartella homeadduser --system --group --home /home/semaphore --no-create-home --shell /bin/bash semaphore - Trasferisci la proprietà di
/home/semaphoree di tutti i file al nuovo utente di sistemachown -R semaphore:semaphore /tmp/semaphorechmod o-rwx /home/semaphorechown -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