Перенос всех приложений wsks-6.0.9 на другой сервер
Задача
Перенести все приложения контейнера wsks-6.0.9_443 из одного сервера на другой.
1. Получите root-права.
Наберите команду и введите пароль от пользователя root.
sudo su
2. Скопируйте весь каталог приложения на новый сервер.
Скопируйте весь каталог /opt/wsks-6.0.9_443
в каталог /opt
на новый сервер с переименованием в wsks-6.0.9_5449
.
Внимание
Следующие действия выполняются на новом сервере!
1. Получите root-права.
Наберите команду и введите пароль от пользователя root.
sudo su
2. Проверьте статус «Selinux».
Если он в режиме «enforcing» или «disabled», то переведите его в режим «permissive».
Внимание, команды перезагрузят ОС при выполнении условий!
if [ -f /etc/selinux/config ]; then if [ "$(echo $(getenforce))" = "Enforcing" ]; then sudo sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config && reboot;fi;fi;
if [ -f /etc/selinux/config ]; then if [ "$(echo $(getenforce))" = "Disabled" ]; then sudo sed -i "s/SELINUX=disabled/SELINUX=permissive/" /etc/selinux/config && reboot;fi;fi;
3. Получите root-права снова.
Получите root-права снова, если предыдущая команда перезагрузила ОС.
sudo su
4. Определите имя пакетного менеджера.
Имя пакетного менеджера (apt-get, apt или yum) определяется автоматически и записывается в переменную $kstmp
.
if [ "$(which apt-get 2> /dev/null)" != "" ]; then export kstmp="apt-get";fi;
if [ "$(which yum 2> /dev/null)" != "" ]; then export kstmp="yum";fi;
if [ "$(which apt 2> /dev/null)" != "" ]; then export kstmp="apt";fi;
4.1. Установите дополнительные утилиты «wget», nano при их отсутствии.
Пункт 4 должен быть выполнен.
if [ -z $(which wget 2> /dev/null) ]; then $kstmp install -y wget;fi;
if [ -z $(which nano 2> /dev/null) ]; then $kstmp install -y nano;fi;
Проверьте наличие «iptables»
В Debian GNU/Linux 11, 12 (bullseye) проверьте наличие iptables командой: iptables --version
.
Если iptables не установлен, то для установки используйте команду apt install iptables
.
5. Настройте диапазон TCP портов
Для исключения ошибки:
Unable to start Kestrel. Failed to bind to address http://0.0.0.0:54430: address already in use
5.1. Выполните команду:
sysctl net.ipv4.ip_local_port_range="32768 54429"
5.2. Создайте файл /etc/sysctl.d/777-keysystems.conf:
nano /etc/sysctl.d/777-keysystems.conf
С содержимым:
net.ipv4.ip_local_port_range = 32768 54429
5.3. Проверьте диапазон TCP портов командой:
sysctl net.ipv4.ip_local_port_range
6. Настройте часовой пояс
Если не выполнить данный пункт, в дальнейшем придется выполнить пересоздание контейнера.
6.1. Узнайте текущий часовой пояс
timedatectl status | grep "zone"
6.2. Получите список часовых поясов
timedatectl list-timezones
6.3. Установите часовой пояс MSK +3 (пример)
timedatectl set-timezone Europe/Moscow
6.4. Установите время
timedatectl set-time 'YYYY-MM-DD HH:MM:SS'
7. Установите «Podman» или «Docker»
Рекомендуется установка Docker.
7.1. Установите «Docker».
Рекомендуется во всех ОС.
wget -O /opt/dks-docker-ce-27.1.1.tar.gz "https://keysystems.ru/files/web/Linux/docker/dks-docker-ce-27.1.1.tar.gz" --no-check-certificate
tar -C /opt/ -xvf /opt/dks-docker-ce-27.1.1.tar.gz
bash /opt/dks-docker-ce-27.1.1/install.sh
6.2. Установите «Podman» при наличии в репозиториях.
На момент написания статьи «Podman» есть в репозиториях:
- ALT Server 10.1;
- RED OS MUROM (7.3.1);
- RED OS MUROM (7.3.2);
- ALT Workstation K 10.0;
- Astra Linux Special Edition x.7.
Пункт 4 должен быть выполнен.
$kstmp install -y podman
$kstmp install -y runc
systemctl start podman
systemctl status podman
8. Скачайте и распакуйте образ «dks-wsks-6.0.9»
wget -O /opt/dks-wsks-6.0.9_d12.tar.gz https://keysystems.ru/files/web/Linux/wsks/6.0.9/dks-wsks-6.0.9_d12.tar.gz --no-check-certificate
tar -C /opt/ -xvf /opt/dks-wsks-6.0.9_d12.tar.gz
9. Установите контейнер с http-сервером или без http-сервера.
Узнайте сначала установленные локали:
locale -a | grep ru
Пример вывода ru_RU.utf8
:
ru_RU
ru_RU.koi8r
ru_RU.utf8
ru_UA
ru_UA.utf8
9.1. Установка контейнера с http-сервером
Установите одно из следующих сочетаний:
- Podman+Apache
- Podman+Nginx
- Podman+Angie
- Docker+Apache
- Docker+Nginx Рекомендуется к установке
- Docker+Angie В РРПО
Порты web-сервиса 443, и prometheus 9093 укажите свои, а также укажите локаль ru_RU.utf8.
В случае, если порт web-сервиса использовался отличный от 443, то наименование установленного контейнера будет иметь вид wsks-6.0.9_54хх
, поэтому нужно быть внимательнее, так как дальнейшая инструкция установки описана для контейнера с портом 443 (wsks-6.0.9_443).
Не устанавливайте вариант с Apache в ОС ROSA Enterprise Linux Server 7.3!
Docker
/opt/dks-wsks-6.0.9/install.sh -ws "nginx" -p "443" -cs "docker" -pp "9093" -l ru_RU.utf8
/opt/dks-wsks-6.0.9/install.sh -ws "angie" -p "443" -cs "docker" -pp "9093" -l ru_RU.utf8
/opt/dks-wsks-6.0.9/install.sh -ws "apache2" -p "443" -cs "docker" -pp "9093" -l ru_RU.utf8
Podman
/opt/dks-wsks-6.0.9/install.sh -ws "nginx" -p "443" -cs "podman" -pp "9093" -l ru_RU.utf8
/opt/dks-wsks-6.0.9/install.sh -ws "apache2" -p "443" -cs "podman" -pp "9093" -l ru_RU.utf8
/opt/dks-wsks-6.0.9/install.sh -ws "angie" -p "443" -cs "podman" -pp "9093" -l ru_RU.utf8
Результат успешной установки
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Установка контейнера WEB-Сервер-КС
~ http сервер: nginx
~ порт\id : 443
~ контейнеризация : docker
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ OK ] Проверка доступности порта 443 ПО "WEB-Сервер-КС".
[ OK ] Проверка доступности порта 9093 ПО "prometheus".
[ OK ] Проверка работы сервиса ПО "Docker" (docker.service).
[ OK ] Загрузка эталонного локального образа wsks-6.0.9 из архива ksdeb12_wsks-6.0.9_image.tar.
[ OK ] Построение конечного образа wsks-6.0.9_443 на базе эталонного.
Структура каталогов /opt/wsks-6.0.9_443 для запуска контейнера wsks-6.0.9_443 не существует, создаем...
[ OK ] Создание структуры каталогов для запуска контейнера wsks-6.0.9_443.
[ OK ] Создание контейнера wsks-6.0.9_443 и запуск в docker (порт\id 443).
[ OK ] Создание пользователя ks-www-data.
Группа ks-www-data существует.
Пользователь ks-www-data существует.
[ OK ] Остановка контейнера wsks-6.0.9_443.
[ OK ] Настройка ротации логов ПО "WEB-Сервер-КС".
[ OK ] Запуск сервиса wsks-6.0.9_443.service.
[ Инфо ] Остановка сервиса wsks-6.0.9_443.service.
Отсутствуют установленные приложения.
Для развертывания веб приложений используйте скрипт ws_addapp.sh.
См. инструкцию по развертыванию /opt/wsks-6.0.9_443/ctl/readme.txt
10. Скопируйте все приложения
Скопируйте на новом сервере все приложения из каталога wsks-6.0.9_5449 в контейнер wsks-6.0.9_443 командой:
bash /opt/wsks-6.0.9_443/ctl/ws_copyfrom.sh -s "wsks-6.0.9_5449" -m replace
Прочитайте информацию о состоянии контейнера на новом сервере:
bash /opt/wsks-6.0.9_443/ctl/ws_info.sh
11. Скопируйте каталоги «Сервис ОД и ЭП» и «Сервиса обновлений»
Каталоги (по умолчанию /var/lib/wsks-6.0.9_443) нужно будет скопировать на новый сервер с соблюдением номеров кестрел-портов, и присвоением соответствующих прав (ks-www-data:ks-www-data).
11.1. На старом сервере в каталоге:
В /var/lib/wsks-6.0.9_443/wsks_54432/UPLOADS размещались первичные документы (Сервис ОД и ЭП).
Перенесите их на новый сервер в /var/lib/wsks-6.0.9_443/wsks_54431.
В /var/lib/wsks-6.0.9_443/wsks_54430/UPDATES размещались архивы сервиса обновлений.
Перенесите их на новый сервер в /var/lib/wsks-6.0.9_443/wsks_54433.
11.2. На новом сервере установите владельца и права доступа
chown -R ks-www-data:ks-www-data /var/lib/wsks-6.0.9_443
chmod -R 755 /var/lib/wsks-6.0.9_443