Развертывание WEB-Сервер-КС
Для соединения с Linux-сервером используйте:
- терминал в случае наличия графического интерфейса Linux-системы;
- клиент PuTTY для удаленного соединения с Linux-машиной. Для соединения укажите поля как показано ниже на рисунке и нажмите «Соединиться».
Перечень операционных систем, на которых было проведено тестирование развертывания WEB-Сервер-КС:
ОС, вошедшие в РРПО: 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;
Остальные ОС: ALT Server 10.1, ALT SP Server 10, Debian GNU/Linux 11, Debian GNU/Linux 12.
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;
Важно для Debian GNU/Linux 11, 12
В 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. Настройте часовой пояс
Если не выполнить данный пункт, в дальнейшем придется выполнить пересоздание контейнера.
Узнайте текущий часовой пояс
timedatectl status | grep "zone"
Получите список часовых поясов
timedatectl list-timezones
Установите часовой пояс MSK +3 (пример)
timedatectl set-timezone Europe/Moscow
Установите время
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
7.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.
Пункт 2.2. должен быть выполнен.
$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
2. Установите контейнер с http-сервером или без http-сервера
Узнайте сначала установленные локали:
locale -a | grep ru
Пример вывода ru_RU.utf8
:
ru_RU
ru_RU.koi8r
ru_RU.utf8
ru_UA
ru_UA.utf8
2.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
/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 "angie" -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
Результат успешной установки
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Установка контейнера 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
2.2. Установка контейнера без http-сервера
В данном примере:
- 443 - это виртуальный порт (этот порт не публикуется),
- порт 9093 - это порт prometheus (сбор метрик сервисов),
- локаль - ru_RU.utf8.
/opt/dks-wsks-6.0.9/install.sh -ws "no_http" -p "443" -cs "docker" -pp 9093 -l ru_RU.utf8
/opt/dks-wsks-6.0.9/install.sh -ws "no_http" -p "443" -cs "podman" -pp 9091 -l ru_RU.utf8