Con el método de instalación de snap para SemaphoreUI siendo desaprobado, recientemente me embarqué en el proceso de migrar a otro método de alojamiento. Elegí instalar la versión del paquete de Semaphore en el mismo sistema. Originalmente tenía la intención de usar las capacidades de respaldo y restauración en una nueva instalación, pero me encontré con múltiples problemas que parecen ser errores que han sido corregidos, pero que impactan la última versión de Semaphore en el snap. Luego tomé un camino diferente que sugiero aquí que se agregue como una ruta documentada para que otros migren.
Pasos para migrar archivos de Semaphore Snap para ser utilizados con el gestor de paquetes o instalación binaria: NOTA: Este método mantiene boltdb como la base de datos para SemaphoreUI
- Inicie sesión como
root
a través desudo su -
u otro método válido. - Detenga la versión snap de SemaphoreUI.
snap stop semaphore.semaphored
- Copie los archivos del snap a un nuevo directorio que será el directorio principal de un nuevo usuario del sistema llamado
semaphore
.cp -rf /root/snap/semaphore/common /home/semaphore
- Mueva la carpeta
repositories
a la nueva ubicación temporal.mv -f /home/semaphore/repositories /tmp/semaphore
- Actualice
config.json
con las nuevas rutas adatabase.boltdb
y la carpeta temporal.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
- Cree un nuevo usuario y grupo del sistema llamado
semaphore
con/home/semaphore
como su carpeta principal.adduser --system --group --home /home/semaphore --no-create-home --shell /bin/bash semaphore
- Transfiera la propiedad de
/home/semaphore
y todos los archivos al nuevo usuario del sistema.chown -R semaphore:semaphore /tmp/semaphore
chmod o-rwx /home/semaphore
chown -R semaphore:semaphore /home/semaphore
Con estos pasos completos, instale y configure Semaphore a través del gestor de paquetes utilizando semaphore
como el usuario o grupo del servicio. Todas las configuraciones y ejecuciones anteriores deberían aparecer en la nueva instancia de SemaphoreUI. Una vez satisfecho, la instancia snap se puede eliminar mediante sudo snap remove semaphore
.
Terminé automatizando todos estos pasos a través de este archivo bash:
#/bin/bash
#Archivo: migrate-semaphore-snap.sh
#Migrar SemaphoreUI de snap como root a paquete/binario como 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