Semaphore UI의 snap 설치 방법이 더 이상 지원되지 않으면서, 최근에 다른 호스팅 방법으로 마이그레이션하는 과정을 시도했습니다. 저는 같은 시스템에 Semaphore의 패키지 버전을 설치하기로 선택했습니다. 처음에는 새로 설치한 시스템에서 백업 및 복원 기능을 사용하려고 했지만, 여러 가지 문제에 직면했고, 이 문제들은 모두 버그로 보였으며, 최신 버전의 Semaphore snap에 영향을 미쳤습니다. 그래서 저는 여기서 제안하는 다른 경로로 진행했습니다. 이는 다른 사람들이 마이그레이션할 수 있도록 문서화된 경로로 추가되기를 바랍니다.
Semaphore Snap 파일을 패키지 관리자 또는 바이너리 설치에 사용할 수 있도록 마이그레이션하는 단계: 참고: 이 방법은 Semaphore UI의 데이터베이스로 boltdb를 유지합니다.
sudo su -
또는 다른 유효한 방법으로root
로 로그인합니다.- Semaphore UI의 snap 버전을 중지합니다.
snap stop semaphore.semaphored
- snap에서 새 디렉토리로 파일을 복사합니다. 이 디렉토리는
semaphore
라는 새 시스템 사용자의 홈 디렉토리가 됩니다.cp -rf /root/snap/semaphore/common /home/semaphore
repositories
폴더를 새 임시 폴더 위치로 이동합니다.mv -f /home/semaphore/repositories /tmp/semaphore
config.json
을 업데이트하여database.boltdb
및 임시 폴더의 새 경로를 설정합니다.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
/home/semaphore
를 홈 폴더로 하는semaphore
라는 새 시스템 사용자 및 그룹을 생성합니다.adduser --system --group --home /home/semaphore --no-create-home --shell /bin/bash semaphore
/home/semaphore
및 모든 파일의 소유권을 새 시스템 사용자에게 이전합니다.chown -R semaphore:semaphore /tmp/semaphore
chmod o-rwx /home/semaphore
chown -R semaphore:semaphore /home/semaphore
이 단계가 완료되면, 패키지 관리자를 통해 Semaphore를 설치하고 설정하여 semaphore
를 서비스 사용자 또는 그룹으로 사용합니다. 모든 설정과 이전 실행이 새 Semaphore UI 인스턴스에 표시되어야 합니다. 만족스러우면, snap 인스턴스는 sudo snap remove semaphore
를 통해 제거할 수 있습니다.
저는 이 모든 단계를 자동화한 bash 파일을 작성했습니다:
#/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