С учетом того, что метод установки Semaphore UI через snap устаревает, я недавно начал процесс миграции на другой метод хостинга. Я выбрал установку пакетной версии Semaphore на ту же систему. Изначально я планировал использовать возможности резервного копирования и восстановления на новой установке, но столкнулся с несколькими проблемами, которые, похоже, являются ошибками, которые были исправлены, но влияют на последнюю версию Semaphore в snap. Затем я выбрал другой путь, который предлагаю здесь добавить в качестве задокументированного метода для других, чтобы мигрировать.
Шаги для миграции файлов Semaphore Snap для использования с менеджером пакетов или бинарной установкой: Примечание: Этот метод сохраняет boltdb в качестве базы данных для Semaphore UI
- Войдите как
root
черезsudo su -
или другим действительным способом. - Остановите версию 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
- Создайте нового системного пользователя и группу с именем
semaphore
, с/home/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