Skip to content

Развертывание «Бюджет-NEXT»v. 25.1 через терминал ОС Linux

Для соединения с Linux-сервером используйте:

  • терминал в случае наличия графического интерфейса Linux-системы;
  • клиент PuTTY для удаленного соединения с Linux-машиной. Для соединения укажите поля как показано ниже на рисунке и нажмите «Соединиться».

Перечень операционных систем, на которых было проведено тестирование развертывания «WEB-Сервер-КС»:

  • ОС, вошедшие в РРПО: ALT SP Server 10, ALT SP Server 10.1, ALT SP Server 10.2, ALT Server 11.1, RED OS 7.3.1, RED OS 7.3.2, RED OS 8, ALT Workstation K 10.0, Astra Linux Special Edition 1.7, Astra Linux Special Edition 1.8, ROSA Enterprise Linux Server 7.3, AlterOS 7.5;

  • Остальные ОС: Debian GNU/Linux 11, Debian GNU/Linux 12.

1. Получите root-права

Наберите команду и введите пароль от пользователя root.

bash
sudo su

2. Проверьте статус «Selinux»

Если он в режиме «enforcing» или «disabled», то переведите его в режим «permissive».

Внимание, команды перезагрузят ОС при выполнении условий!

bash
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-права повторно, если предыдущая команда перезагрузила ОС

bash
sudo su

4. Определите имя пакетного менеджера

Имя пакетного менеджера (apt-get, apt или yum) определяется автоматически и записывается в переменную $kstmp.

bash
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 должен быть выполнен.

bash
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. Выполните команду:

bash
sysctl net.ipv4.ip_local_port_range="32768 54429"

5.2. Создайте файл /etc/sysctl.d/777-keysystems.conf:

bash
nano /etc/sysctl.d/777-keysystems.conf

С содержимым:

net.ipv4.ip_local_port_range = 32768 54429

5.3. Проверьте диапазон TCP портов командой:

bash
sysctl net.ipv4.ip_local_port_range

6. Настройте часовой пояс

Если не выполнить данный пункт, в дальнейшем придется выполнить пересоздание контейнера.

Узнайте текущий часовой пояс

bash
timedatectl status | grep "zone"

Получите список часовых поясов

bash
timedatectl list-timezones

Установите часовой пояс MSK +3 (пример)

bash
timedatectl set-timezone Europe/Moscow

Установите время

bash
timedatectl set-time 'YYYY-MM-DD HH:MM:SS'

7. Установите «Podman» или «Docker»

Рекомендуется установка Docker.

7.1. Установите «Docker»

Рекомендуется во всех ОС.

bash
$kstmp install -y docker
$kstmp install -y runc
systemctl start docker
systemctl status docker

7.2. Установите «Podman» при наличии в репозиториях

Пункт 4 должен быть выполнен.

bash
$kstmp install -y podman
$kstmp install -y runc
systemctl start podman
systemctl status podman

8. Скачайте и распакуйте образ «dks-wsks-6.0.9»

bash
wget -O /opt/dks-wsks-6.0.9_lp11.tar.gz https://keysystems.ru/files/web/Linux/wsks/6.0.9/dks-wsks-6.0.9_lp11.tar.gz
tar -C /opt/ -xvf /opt/dks-wsks-6.0.9_lp11.tar.gz
bash
wget -O /opt/dks-wsks-6.0.9_a18.tar.gz https://keysystems.ru/files/web/Linux/wsks/6.0.9/dks-wsks-6.0.9_a18.tar.gz
tar -C /opt/ -xvf /opt/dks-wsks-6.0.9_a18.tar.gz
bash
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
tar -C /opt/ -xvf /opt/dks-wsks-6.0.9_d12.tar.gz

9. Установите контейнер с http-сервером или без http-сервера.

Узнайте сначала установленные локали:

bash
locale -a | grep ru
Пример вывода ru_RU.utf8:
ru_RU
ru_RU.koi8r
ru_RU.utf8
ru_UA
ru_UA.utf8

9.1. Установка контейнера с http-сервером

Установите одно из следующих сочетаний:

  • Docker+Nginx Рекомендуется к установке
  • Docker+Angie В РРПО
  • Docker+Apache
  • Podman+Apache
  • Podman+Nginx
  • Podman+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

bash
/opt/dks-wsks-6.0.9/install.sh -ws "nginx" -p "443" -cs "docker" -pp "9093" -l ru_RU.utf8
bash
/opt/dks-wsks-6.0.9/install.sh -ws "angie" -p "443" -cs "docker" -pp "9093" -l ru_RU.utf8
bash
/opt/dks-wsks-6.0.9/install.sh -ws "apache2" -p "443" -cs "docker" -pp "9093" -l ru_RU.utf8

Podman

bash
/opt/dks-wsks-6.0.9/install.sh -ws "nginx" -p "443" -cs "podman" -pp "9093" -l ru_RU.utf8
bash
/opt/dks-wsks-6.0.9/install.sh -ws "angie" -p "443" -cs "podman" -pp "9093" -l ru_RU.utf8
bash
/opt/dks-wsks-6.0.9/install.sh -ws "apache2" -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 из архива astra18_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

9.2. Установка контейнера без http-сервера

В данном примере:

  • 443 - это виртуальный порт (этот порт не публикуется),
  • порт 9093 - это порт prometheus (сбор метрик сервисов),
  • локаль - ru_RU.utf8.
bash
/opt/dks-wsks-6.0.9/install.sh -ws "no_http" -p "443" -cs "docker" -pp 9093 -l ru_RU.utf8
bash
/opt/dks-wsks-6.0.9/install.sh -ws "no_http" -p "443" -cs "podman" -pp 9091 -l ru_RU.utf8

10. Установите веб-приложение Бюджет-NEXT.

Задача

Развернуть .NET Core приложение Бюджет-NEXT:

  • с типом СУБД - PostgreSQL,
  • именем сервера - 10.38.46.119:5434,
  • базой данных - razr_241_test1_pg,
  • обращение к сайту обеспечить через виртуальный каталог budgetnext.
bash
wget -O /opt/wsks-6.0.9_443/ctl/tar_files/webnext.tar.gz "https://keysystems.ru/files/web/INSTALL/BUDGET_NEXT/25.1/webnext-251.tar.gz"
bash /opt/wsks-6.0.9_443/ctl/ws_addapp.sh -t "wBKS" -a "webnext.tar.gz" -vc "budgetnext" -st "3" -sn "10.38.46.119:5434" -dn "razr_251_test0_pg"
ПараметрЗначениеОписание
-s"Ссылка на архив"Интернет-ресурс для закачки файла архива. Закачка осуществляется через утилиту wget.
Постоянный URL-адрес актуальной версии архива Бюджет-NEXT.
-t"wBKS"Тип устанавливаемого приложения Бюджет-NEXT.
-a"webnext.tar.gz"Имя архива *.tar.gz для развертывания. Переименованно в webnext.tar.gz в процессе загрузки архива на хост.
-vc"bubgetnext"Виртуальный каталог для приложения.
Если не указан, то берется тип + кестрел порт. Используется для всех типов приложений.
-st"3"Тип источника СУБД:
0-MSSQL,
3-PostgreSQL.
-sn"10.38.46.119:5434"Имя или ip источника СУБД, если используется порт, то его необходимо указать через двоеточие.
-dn"razr_251_test0_pg"Имя базы данных источника СУБД.
Результат успешной установки
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           ~    Установка прикладного приложения WEB-Сервер-КС
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[   OK   ] Проверка доступности порта 54430  ПО "Бюджет-NEXT".
[   OK   ] Проверка виртуального каталога "budgetnext".
[   OK   ] Распаковка архива обновления "webnext.tar.gz" в рабочий каталог.
[   OK   ] Создание каталога приложения /opt/wsks-6.0.9_443/www/html/wsks_54430.
[   OK   ] Создание файла запуска приложения /opt/wsks-6.0.9_443/ctl/app/54430_app.sh.
           Приложение будет доступно по адресу - https://10.38.46.119:443/budgetnext.
[   OK   ] Создание файла конфигурации для приложения /opt/wsks-6.0.9_443/conf.ks/vhost.ks/54430_ks.conf.
[   OK   ] Создание файла настроек для приложения /opt/wsks-6.0.9_443/www/html/wsks_54430/appsettings.Production.json.
[   OK   ] Запуск сервиса wsks-6.0.9_443.service.

При развертывании экземпляра контейнера с http сервером используется самоподписанный SSL-сертификат wsks-19.08_demo.crt вида:

E = info@keysystems.ru
CN = DSR
OU = DSR
O = Keysystems LLC
L = Cheboksary
S = Chuvashia
C = RU

Как заменить сертификат читайте в статье: Замена сертификата в WEB-Сервер-КС


Дополнительно

1. Чтение информации о WEB-Сервер-КС версии 6.0.9, использующего порт 443

bash
bash /opt/wsks-6.0.9_443/ctl/ws_info.sh

Скрипт отображает следующую информацию:

  1. Состояние и тип web-сервера (только для контейнера с http-сервером): Apache, Nginx или Angie.
  2. Перечень установленных приложений, и их состояние.
  3. Приложение контейнера Podman или Docker.

ws_info_wsks

2. Создайте стартовую страницу при необходимости

Только для контейнера с http-сервером.

Вместо 10.38.46.86 укажите имя или IP-адрес web-сервера.

Каждый раз после добавления, либо удаления приложений стартовую страницу надо пересоздавать.

2.1. Создайте стартовую страницу.

bash
bash /opt/wsks-6.0.9_443/ctl/ws_crtind.sh -n "10.38.46.86" -r -s
ПараметрыПо умолчаниюОписание
-n
--dns_name
%dns_name_not_define%Доменное имя или ip хоста.
-s
--sort
Без сортировки.Сортировка по типу приложения.
-r
--replace
01 - перезаписать файл ${dks_inst_path}/www/html/index.html
0 - не перезаписывать

2.2. Отредактируйте конфигурационный файл (пример для Nginx).

    location / {
        root   /var/www/html;
        index  index.html index.htm;
    }
    location ~ ^/wsks.* {
        return 400;
    }

2.3. Перечитайте конфигурацию Nginx.

bash
docker exec -ti wsks-6.0.9_443 bash -c "/etc/init.d/nginx reload"

В итоге стартовая страница web-сервера по адресу https://10.38.46.86:443 (укажите свой IP-адрес или имя сервера, также порт) будет выглядеть следующим образом: crtind

3. Удаление контейнера вместе со всеми приложениями

Укажите свой порт web-сервиса.

Внимание: не используйте ключ -all

bash
cd /&& opt/dks-wsks-6.0.9/uninstall.sh -p "443"

4. Остановка, запуск и перезапуск отдельного .NET Core приложения

Остановка, запуск и перезапуск отдельного .NET Core приложения

Без остановки контейнера и других работающих приложений, для дополнительной настройки или просто для временного запрета работы, например, чтобы обновить БД. Управление запуском, остановкой или перезапуском осуществляется выполнением следующих команд:

bash
bash /opt/wsks-6.0.9_443/ctl/ws_ctlapp.sh -p "54430" -m "stop"
bash /opt/wsks-6.0.9_443/ctl/ws_ctlapp.sh -p "54430" -m "start"
bash /opt/wsks-6.0.9_443/ctl/ws_ctlapp.sh -p "54430" -m "restart"
ПараметрыПо умолчаниюОписание
-p
--kestrel_port
54430Кестрел-порт развернутого приложения.
-m
--mode
restartВыполняемое действие:
restart - остановить и запустить;
stop - остановить;
start - запустить.

5. Удаление отдельного .NET Core приложения

Выясните, какой kestrel порт использует приложение, которое необходимо удалить:

bash
/opt/wsks-6.0.9_443/ctl/ws_info.sh

ws_info

Kestrel-порт 54431. Выполните команду для удаления:

bash
cd /opt && bash /opt/wsks-6.0.9_443/ctl/ws_delapp.sh -p 54431

ws_delapp

6. Остановка, запуск и перезапуск контейнера/службы WEB-Сервер-КС

Имя службы WEB-Сервер-КС версии 6.0.9, использующего порт 443:

wsks-6.0.9_443.service

Остановка службы (останавливаются все приложения) и просмотр ее статуса:

bash
systemctl stop wsks-6.0.9_443.service
systemctl status wsks-6.0.9_443.service

Запуск службы (запускаются все приложения) и просмотр ее статуса:

bash
systemctl start wsks-6.0.9_443.service
systemctl status wsks-6.0.9_443.service

Перезапуск службы (перезапускаются все приложения) и просмотр ее статуса

bash
systemctl restart wsks-6.0.9_443.service
systemctl status wsks-6.0.9_443.service

© 2003—2026 ООО «Кейсистемс». Все права защищены.