###
### WEB-Сервер-КС
###
### Copyright (c) 2023, ООО "Кейсистемс"
###
### Версия 6.0.9
###


  Описание           : Платформа для развертывания, управления и удаления http сервера и прикладных сервисов,
                       реализованных в виде контейнера для работы в средах с поддержкой контейнеризации
                       Docker или Podman.

  Цель использования : Минимизировать издержки, связанные с разворачиванием и настройкой http сервера и .NET Core приложений.

  Требует для работы : Docker-CE (Docker, Inc. лицензия Apache 2.0) или Podman (лицензия Apache 2.0), платформа linux/amd64.

  Характеристики     : Позволяет устанавливать один контейнер c http сервером Apache, Nginx или Angie по указанному порту,
                       внутри которого возможна установка нескольких .NET Core приложений идентифицируемых назначенным
                       виртуальным каталогом.
                       Диапазона используемых портов: 5444-5493 и дополнительно 443 порт (по умолчанию).

                       Или позволяет установить один контейнер без установки какого-либо http сервера,
                       внутри которого возможна установка нескольких .NET Core приложений идентифицируемых
                       только портами приложений.

                       В поставляемом образе контейнера используются компоненты:
                        - http сервер Apache                  (лицензия Apache 2.0),
                        - http сервер Nginx                   (лицензия BSD из 2 пунктов)
                        - http сервер Angie                   (лицензия BSD из 2 пунктов)

                        Примечание: Компонент устанавливается только для конкретного
                        указаного http сервера. Если http сервер не указан (no_http), то
                        компоненты не устанавливаются.

                        - Runtime библиотека .NET Core 6.0.9  (лицензия MIT)
                        - prometheus                          (лицензия Apache 2.0)


                       Для более подробного ознакомления с лицензированием используемых программ
                       и информации об авторских правах смотрите соответствующие сайты:
                       https://www.docker.com/
                       https://httpd.apache.org/
                       https://dotnet.microsoft.com/
                       https://nginx.org/
                       https://angie.software/
                       https://prometheus.io/
                       https://podman.io/


  Внимание! Для выполнения операции необходимы права суперпользователя.

  Основные команды создания и удаления экземпляра контейнера с http сервером:

 1) Создание экземпляра контейнера с http сервером.

    Например, необходимо создать экземпляр контейнера с http сервером Nginx по порту 443
    c типом контейнеризации docker.
    Для этого в командной строке с правами суперпользователя выполняем команду:

    [root@demosrv]# /opt/dks-wsks-6.0.9/install.sh -ws "nginx" -p "443" -cs "docker"

    в результате, при успешном выполнении будет выведено сообщение:

    === Лог выполнения ============================================================================================================================================

              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              ~     Установка контейнера WEB-Сервер-КС 6.0.9
              ~        http сервер: nginx
              ~           порт\id : 443
              ~   контейнеризация : docker
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   [   OK   ] Проверка доступности порта 443  ПО "WEB-Сервер-КС".
   [   OK   ] Проверка доступности порта 9093  ПО "prometheus".
   [   OK   ] Проверка работы сервиса ПО "Docker" (docker.service).
   [   OK   ] Загрузка эталонного локального образа wsks-6.0.9 из архива ksdeb09_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 (порт 443).
   [   OK   ] Создание пользователя 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


    ===============================================================================================================================================================

    и на хосте будут созданы:
    - каталог управления и разворачивания приложений     /opt/wsks-6.0.9_443;
    - каталог для хранения изменяемых данных приложений  /var/lib/wsks-6.0.9_443;
    - служебный пользователь ks-www-data, ID которого соответствует ID основного
      рабочего пользователя www-data в контейнере;

    Для переопределения стандартных портов программ мониторинга prometheus->9093
    необходимо указать другое значение в параметре -pp, например:

    [root@demosrv]# /opt/dks-wsks-6.0.9/install.sh -ws "nginx" -p "443" -cs "docker" -pp "9096"

    Для установки контейнера с http сервером Apache необходимо указать в параметре -wc значение "apache2", например:

    [root@demosrv]# /opt/dks-wsks-6.0.9/install.sh -ws "apache2" -p "443" -cs "docker"

    Для установки контейнера без какого-либо http сервера необходимо указать в параметре -wc значение "no_http", например:

    [root@demosrv]# /opt/dks-wsks-6.0.9/install.sh -ws "no_http" -p "443" -cs "docker"


    Информацию по развертыванию прикладных сервисов и приложений см. /opt/wsks-6.0.9_443/ctl/readme.txt.




 2) Удаление экземпляра контейнера

    Например, необходимо удалить экземпляр контейнера с http сервером развернутого по порту 443.
    Для этого в командной строке с правами суперпользователя выполняем команду:

    [root@demosrv]# /opt/dks-wsks-6.0.9/uninstall.sh -p "443"

    При удалении с указанием только порта, удаляется только сам экземпляр контейнера, а рабочий каталог остается.
    Для удаления экземпляра вместе с рабочим каталогом необходимо указать второй параметр "all".

    [root@demosrv]# /opt/dks-wsks-6.0.9/uninstall.sh -p "443" -all

    === Лог выполнения ==============================================================================================================

              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              ~  Удаление контейнера WEB-Сервер-КС
              ~            порт\id : 443
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    [ Запрос ] Вы действительно хотите удалить http сервер по порту "443"?
               ([да;y]/[нет;n]): y

    [   OK   ] Удаление контейнера wsks-6.0.9_443.
    [   OK   ] Удаление образа wsks-6.0.9_443.
    [   OK   ] Удаление базового образа wsks-6.0.9.
    [   OK   ] Удаление сервиса /lib/systemd/system/wsks-6.0.9_443.service.
    [   OK   ] Задан режим полного удаления.
               Удаление каталога /opt/wsks-6.0.9_443.
               Удаление каталога /var/lib/wsks-6.0.9_443

    ==================================================================================================================================






