Com o método de instalação via snap para SemaphoreUI sendo descontinuado, recentemente me empenhei no processo de migração para outro método de hospedagem. Escolhi instalar a versão do pacote do Semaphore no mesmo sistema. Inicialmente, pretendia usar as capacidades de backup e restauração em uma nova instalação, mas encontrei vários problemas que parecem ser bugs que foram corrigidos, mas impactam a versão mais recente do Semaphore no snap. Então, segui um caminho diferente que sugiro aqui que seja adicionado como um caminho documentado para outros migrar.
Passos para Migrar os arquivos do Snap do Semaphore para serem usados com o Gerenciador de Pacotes ou Instalação Binária: OBS: Este método mantém o boltdb como o banco de dados para o SemaphoreUI
- Faça login como
root
viasudo su -
ou outro método válido. - Pare a versão snap do SemaphoreUI.
snap stop semaphore.semaphored
- Copie os arquivos do snap para um novo diretório que será o diretório home de um novo usuário do sistema chamado
semaphore
.cp -rf /root/snap/semaphore/common /home/semaphore
- Mova a pasta
repositories
para o novo local temporário.mv -f /home/semaphore/repositories /tmp/semaphore
- Atualize
config.json
com novos caminhos paradatabase.boltdb
e a pasta temporária.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
- Crie um novo usuário e grupo do sistema chamado
semaphore
com/home/semaphore
como seu diretório home.adduser --system --group --home /home/semaphore --no-create-home --shell /bin/bash semaphore
- Transfira a propriedade de
/home/semaphore
e todos os arquivos para o novo usuário do sistema.chown -R semaphore:semaphore /tmp/semaphore
chmod o-rwx /home/semaphore
chown -R semaphore:semaphore /home/semaphore
Com esses passos completos, instale e configure o semaphore via gerenciador de pacotes usando semaphore
como o usuário ou grupo do serviço. Todas as configurações e execuções anteriores devem aparecer na nova instância do SemaphoreUI. Uma vez satisfeito, a instância snap pode ser removida via sudo snap remove semaphore
.
Acabei automatizando todos esses passos através deste arquivo bash:
#/bin/bash
#Arquivo: migrate-semaphore-snap.sh
#Migrar SemaphoreUI do snap como root para pacote/binário 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