Миграция контейнера wsks-6.0.9 в wsks-8.0
В данной статье рассматривается перенос/миграция всех приложений из wsks-6.0.9_443 в wsks-8.0_443.
1. Получите информацию о контейнере wsks-6.0.9_443
bash /opt/wsks-6.0.9_443/ctl/ws_info.sh
2. Удалите контейнер wsks-6.0.9_443
При этом все содержимое каталога /opt/wsks-6.0.9_443 сохранится.
cd /&& opt/dks-wsks-6.0.9/uninstall.sh -p "443"
3. Переименуйте/перемонтируйте каталог /var/lib/wsks-6.0.9_443
в /var/lib/wsks-8.0_443
Важно для сервиса ОД и сервиса обновлений.
Точки монтирования удобно посмотреть командой:
lsblk
В примере раздел /dev/sdb1
монтирован в каталог /var/lib/wsks-8.0_443
.
4. Скачайте и разверните новый контейнер wsks-8.0 на 443 порту
wget -O "/opt/dks-wsks-8.0_d12.tar.gz" "https://keysystems.ru/files/web/Linux/wsks/8.0/dks-wsks-8.0_d12.tar.gz" --no-check-certificate
tar -C /opt/ -xvf "/opt/dks-wsks-8.0_d12.tar.gz"
bash /opt/dks-wsks-8.0/install.sh -ws "nginx" -p "443" -cs "docker" -pp "9091" -l "ru_RU.utf8"
5. Остановите контейнер wsks-8.0_443
systemctl stop wsks-8.0_443
6. Подправьте скрипт /opt/dks-wsks-8.0/sh/dks_migration.sh
Откройте файл на редактирование с помощью nano:
nano /opt/dks-wsks-8.0/sh/dks_migration.sh
Закомментируйте строку "# exit 1;"
if ! [ -d "${file_var_from}" ]; then
echo -e "${eRR}Отсутствует каталог источник ${file_var_from}"
echo -e "${emptE}Операция миграции будет прервана."
# exit 1;
fi;
7. Мигрируйте wsks-6.0.9 на порту 443 в wsks-8.0 порт 443
bash /opt/dks-wsks-8.0/migration.sh -p 443 -from wsks-6.0.9 -to wsks-8.0
8. Запустите контейнер wsks-8.0_443
systemctl start wsks-8.0_443
9. Получите информацию о контейнере wsks-8.0_443
Убедитесь, что все стартует удачно.
/opt/wsks-8.0_443/ctl/ws_info.sh
10. Удалите старый каталог /opt/wsks-6.0.9_443
Примечания
11.1. Ошибка в конце выполнения скрипта не является критичной
Поскольку юнит был удален в пункте 2 настоящей статьи.
[ OK ] Отключение автоматического запуска wsks-6.0.9_443
Failed to disable unit: Unit file wsks-6.0.9_443.service does not exist.
11.2. После обновления сервиса с Net6-версии на Net8-версию подправьте стартовый файл
Необходимо поправить соответствующий кестрел-порту стартовый файл в /opt/wsks-8.0_443/ctl/app
. Именно, поменять .dotnet6 на .dotnet8.
cmdstart="/opt/.dotnet8/dotnet /var/www/html/${app_dir}/${startdll}"
cmdstop="/opt/.dotnet8/dotnet /var/www/html/${app_dir}/${startdll}"
И рекомендуется добавить параметр "kscore=8"
в файле wskstype, который располагается в каталоге с приложением. Пример этого файла:
type=wNEWS
type_name=Сервис новостей
kestrel_port=54434
virt_catalog=news
note=
archive=Keysystems.NewsService.tar.gz
archivehash=79aebda24ef9306f79ed5ec5a5f14d8073c36f59
version=1.0.41.919
kscore=8
Это позволит видеть в скрипте версию платформы Net.