Da snap-installationsmetoden for SemaphoreUI bliver udfaset (deprecated), gik jeg for nylig i gang med processen for at migrere til en anden hostingmetode. Jeg valgte at installere pakkeversionen af Semaphore på det samme system. Oprindeligt havde jeg til hensigt at bruge backup- og gendannelsesfunktionerne på en ny installation, men stødte på flere problemer, som alle ser ud til at være fejl, der er rettet, men som påvirker den seneste version af Semaphore i snap. Jeg valgte derefter en anden rute, som jeg her foreslår tilføjet som en dokumenteret vej for andre til at migrere.

Trin til at migrere Semaphore Snap-filer til brug med pakkehåndtering eller binær installation: BEMÆRK: Denne metode bevarer boltdb som database for SemaphoreUI

  1. Log ind som root via sudo su - eller en anden gyldig metode
  2. Stop snap-versionen af SemaphoreUI snap stop semaphore.semaphored
  3. Kopiér filer fra snap over til en ny mappe, som bliver hjemmemappe for en ny systembruger ved navn semaphore cp -rf /root/snap/semaphore/common /home/semaphore
  4. Flyt mappen repositories til den nye midlertidige mappeplacering mv -f /home/semaphore/repositories /tmp/semaphore
  5. Opdater config.json med nye stier til database.boltdb og den midlertidige mappe 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. Opret en ny systembruger og -gruppe ved navn semaphore med /home/semaphore som hjemmemappe adduser --system --group --home /home/semaphore --no-create-home --shell /bin/bash semaphore
  7. Overdrag ejerskab af /home/semaphore og alle filer til den nye systembruger chown -R semaphore:semaphore /tmp/semaphore chmod o-rwx /home/semaphore chown -R semaphore:semaphore /home/semaphore

Når disse trin er fuldført, installeres og opsættes semaphore via en pakkehåndtering med semaphore som tjenestebruger eller gruppe. Alle indstillinger og tidligere kørsler bør blive vist i den nye SemaphoreUI-instans. Når du er tilfreds, kan snap-instansen fjernes via sudo snap remove semaphore.

Jeg endte med at automatisere alle disse trin gennem denne bash-fil:

#/bin/bash
#File: migrate-semaphore-snap.sh
#Migrate SemaphoreUI from snap as root to package/binary as 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