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.

  1. Melden Sie sich als root an über sudo su - oder eine andere gültige Methode.
  2. Stoppen Sie die Snap-Version von SemaphoreUI. snap stop semaphore.semaphored
  3. 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
  4. Verschieben Sie den Ordner repositories an den neuen temporären Speicherort. mv -f /home/semaphore/repositories /tmp/semaphore
  5. Aktualisieren Sie config.json mit den neuen Pfaden zu database.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
  6. 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
  7. Ü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