Установка WEB-Сервер-КС (Docker&Podman) версии 6.0.9
«WEB-Сервер-КС» - платформа для развертывания, управления и удаления http-сервера, реализованного в виде контейнера для работы в средах с поддержкой контейнеризации Docker или Podman.
Цель использования: минимизировать издержки, связанные с разворачиванием и настройкой http-сервера и .NET Core приложений.
Требует для работы: Docker-CE (Docker, Inc. лицензия Apache 2.0) или Podman (лицензия Apache 2.0), платформа linux/amd64.
Характеристики: позволяет устанавливать один контейнер c http-сервером Apache, Angie или Nginx по указанному порту, внутри которого возможна установка нескольких .NET Core приложений, идентифицируемых назначенным виртуальным каталогом.
Диапазон используемых портов: 5444-5493 и дополнительно 443 порт (по умолчанию).
В поставляемом образе контейнера используются следующие компоненты:
- http-сервер Apache (лицензия Apache 2.0);
- http-сервер Nginx (лицензия BSD из 2 пунктов);
- http-сервер Angie (лицензия BSD из 2 пунктов);
- Runtime библиотека .NET Core 6.0.9 (лицензия MIT);
- prometheus 2.43.0 (лицензия Apache 2.0).
Инструкция примера для работы с контейнером (структура, основные команды развертывания, удаления, обновления приложения): в каталоге /opt/wsks-6.0.9_443/ctl/ файл readme.txt.
Для соединения с Linux-сервером используйте:
- терминал в случае наличия графического интерфейса Linux-системы;
- клиент PuTTY для удаленного соединения с Linux-машиной. Для соединения заполните поля, как показано на рисунке, и нажмите кнопку [Соединиться].
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;
2.1. Если предыдущая команда перезагрузила ОС, получите root-права снова.
sudo su
2.2. Определите имя пакетного менеджера. Имя пакетного менеджера (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;
2.3. Установите дополнительные утилиты wget, nano при их отсутствии (предварительно должен быть выполнен п. 2.2).
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;
В Debian GNU/Linux 11, 12 (bullseye) проверьте наличие iptables командой iptables --version
.
Если iptables
не установлен, то для установки используйте команду apt install iptables
.
2.4. Настройте диапазон портов.
Пункт является обязательным для выполнения при первичной установке.
sysctl net.ipv4.ip_local_port_range="32768 54429"
Или для корректной работы после рестарта ОС необходимо создать файл /etc/sysctl.d/777-keysystems.conf
c содержимым net.ipv4.ip_local_port_range = 32768 54429
.
nano /etc/sysctl.d/777-keysystems.conf
Проверка диапазона портов TCP осуществляется командой:
sysctl net.ipv4.ip_local_port_range
2.5. Обязательно настройте часовой пояс! Если забыли это сделать, то потом придется выполнить пересоздание контейнера.
timedatectl status | grep "zone"
3. Установите Podman или Docker (рекомендуется).
Обратите внимание, необходимо установить только один вариант из приведенных ниже (п. 3.1. или п. 3.2.).
3.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
3.2. Установите Podman при наличии в репозиториях. На момент написания статьи Podman есть в репозиториях: ALT Server 10.1, ALT SP Server 10, RED OS MUROM (7.3.1), RED OS MUROM (7.3.2), ALT Workstation K 10.0, Astra Linux Special Edition x.7 (предварительно должен быть выполнен п. 2.2).
$kstmp install -y podman
$kstmp install -y runc
systemctl start podman
systemctl status podman
4. Скачайте и распакуйте образ 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
5. Установите контейнер с http-сервером.
Сначала определите установленные локали (необходимо наличие ru_RU.utf8):
locale -a | grep ru
Установите ОДИН из следующих контейнеров в зависимости от установленного в п.3. ПО контейнеризации (docker/podman) (вместо портов web-сервиса 443 и prometheus 9091 укажите свои, а также укажите локаль ru_RU.utf8):
Не рекомендуется устанавливать вариант с Apache в ОС ROSA Enterprise Linux Server 7.3!
Если используется порт web-сервиса, отличный от 443, то наименование установленного контейнера будет иметь вид wsks-6.0.9_54хх
, будьте внимательны, дальнейшая инструкция установки описана для контейнера с портом 443 (wsks-6.0.9_443).
Docker+Nginx (рекомендуется к установке):
/opt/dks-wsks-6.0.9/install.sh -ws "nginx" -p "443" -cs "docker" -pp "9091" -l ru_RU.utf8
Docker+Angie (в РОПО):
/opt/dks-wsks-6.0.9/install.sh -ws "angie" -p "443" -cs "docker" -pp "9091" -l ru_RU.utf8
Docker+Apache:
/opt/dks-wsks-6.0.9/install.sh -ws "apache2" -p "443" -cs "docker" -pp "9091" -l ru_RU.utf8
Podman+Apache:
/opt/dks-wsks-6.0.9/install.sh -ws "apache2" -p "443" -cs "podman" -pp "9091" -l ru_RU.utf8
Podman+Nginx:
/opt/dks-wsks-6.0.9/install.sh -ws "nginx" -p "443" -cs "podman" -pp "9091" -l ru_RU.utf8
Podman+Angie:
/opt/dks-wsks-6.0.9/install.sh -ws "angie" -p "443" -cs "podman" -pp "9091" -l ru_RU.utf8
См. далее Установка приложения «Администратор-WEB»