Mit der Einstellung der Snap-Installationsmethode für SemaphoreUI habe ich kürzlich den Prozess zur Migration auf eine andere Hosting-Methode in Angriff genommen. Ich habe mich entschieden, die Paketversion von Semaphore auf demselben System zu installieren. Ursprünglich hatte ich vor, die Backup- und Wiederherstellungsfunktionen bei einer frischen Installation zu nutzen, stieß jedoch auf mehrere Probleme, die alle wie Bugs erscheinen, die behoben wurden, aber die neueste Version von Semaphore im Snap beeinträchtigen. Ich bin dann einen anderen Weg gegangen, den ich hier vorschlage, um ihn als dokumentierten Pfad für andere zur Migration hinzuzufügen.
Schritte zur Migration von Semaphore Snap-Dateien zur Verwendung mit dem Paketmanager oder der Binärinstallation: Hinweis: Diese Methode behält boltdb als Datenbank für SemaphoreUI bei.
- Melden Sie sich als
root
an übersudo su -
oder eine andere gültige Methode. - Stoppen Sie die Snap-Version von SemaphoreUI.
snap stop semaphore.semaphored
- Kopieren Sie die Dateien vom Snap in ein neues Verzeichnis, das das Home-Verzeichnis eines neuen Systembenutzers namens
semaphore
sein wird.cp -rf /root/snap/semaphore/common /home/semaphore
- Verschieben Sie den Ordner
repositories
an den neuen temporären Speicherort.mv -f /home/semaphore/repositories /tmp/semaphore
- Aktualisieren Sie
config.json
mit den neuen Pfaden zudatabase.boltdb
und dem temporären Ordner.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
- Erstellen Sie einen neuen Systembenutzer und eine Gruppe namens
semaphore
mit/home/semaphore
als Home-Verzeichnis.adduser --system --group --home /home/semaphore --no-create-home --shell /bin/bash semaphore
- Übertragen Sie den Besitz von
/home/semaphore
und allen Dateien auf den neuen Systembenutzer.chown -R semaphore:semaphore /tmp/semaphore
chmod o-rwx /home/semaphore
chown -R semaphore:semaphore /home/semaphore
Nachdem diese Schritte abgeschlossen sind, installieren und richten Sie Semaphore über den Paketmanager ein, wobei semaphore
als Dienstbenutzer oder -gruppe verwendet wird. Alle Einstellungen und vorherigen Ausführungen sollten in der neuen SemaphoreUI-Instanz angezeigt werden. Sobald Sie zufrieden sind, kann die Snap-Instanz über sudo snap remove semaphore
entfernt werden.
Ich habe alle diese Schritte in dieser Bash-Datei automatisiert:
#/bin/bash
#Datei: migrate-semaphore-snap.sh
#Migrieren von SemaphoreUI von Snap als Root zu Paket/Binär als 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