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
root
tramitesudo 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
semaphore
cp -rf /root/snap/semaphore/common /home/semaphore
- Sposta la cartella
repositories
nella nuova posizione temporaneamv -f /home/semaphore/repositories /tmp/semaphore
- Aggiorna
config.json
con i nuovi percorsi perdatabase.boltdb
e la cartella temporaneased -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
- Crea un nuovo utente e gruppo di sistema chiamato
semaphore
con/home/semaphore
come sua cartella homeadduser --system --group --home /home/semaphore --no-create-home --shell /bin/bash semaphore
- Trasferisci la proprietà di
/home/semaphore
e di tutti i file al nuovo utente di sistemachown -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