Общие сведения о программе ========================== Обозначение и наименование программы ------------------------------------ .. Подключаем раздел Название программы (lite_name_program) .. include:: /project_dtm/doc_reuse/lite_name_program.rst Назначение программы -------------------- .. Подключаем раздел Назначение программы (lite_purpose_program.rst) .. include:: /project_dtm/doc_reuse/lite_purpose_program.rst Возможности программы --------------------- .. Подключаем раздел Возможности программы (lite_program_functions.rst) .. include:: /project_dtm/doc_reuse/lite_program_functions.rst Подготовка к установке ====================== Требования к серверу -------------------- Программа может функционировать под одной из следующих операционных систем: - CentOS 7.9 (далее - CentOS); - РЕД ОС версии 7.2 (далее - РЕД ОС); - АЛЬТ Сервер 8 СП (далее - АЛЬТ ОС). Минимальные и рекомендованные системные требования к серверу для установки Программы приведены в :numref:`lite_table_server_requirements`. .. _lite_table_server_requirements: .. table:: Требования к серверному оборудованию ========================= =============== ================= **Требования к** **Минимальные** **Рекомендуемые** ========================= =============== ================= Процессор (CPU) 4 ядра 10 ядер Оперативная память (RAM) 16 Гб 128 Гб Жесткий диск (HDD) 100 Гб 500 Гб ========================= =============== ================= .. _preactions: Предварительные действия ------------------------ .. note:: Установка Программы производится в закрытом контуре (без необходимости доступа к сети Интернет). Перед установкой Программы необходимо выполнить следующие предварительные действия: #. Установить на сервер одну из операционных систем: - операционную систему CentOS, версия 7.9 (см. раздел :ref:`os_install`); - операционную систему РЕД ОС, версии 7.2 (см. раздел :ref:`os_install`); - операционную систему АЛЬТ Сервер 8 СП (см. раздел :ref:`os_install`); - операционную систему Astra Linux 1.7 (уровень защищенности "Воронеж") (см. раздел :ref:`os_install`). #. Создать пользователя *datamart* с правами ``sudo`` (см. раздел :ref:`datamart_user_lite`). #. Проверить настройки Firewall и отключить при необходимости (см. раздел :ref:`firewall_off`). #. Выключить SELinux (см. раздел :ref:`SELinux_off`). #. Указать соответствующий местоположению сервера часовой пояс (см. раздел :ref:`timezone`). #. Настроить ssh-подключение к серверу, на котором планируется установка (см. раздел :ref:`ssh_connect`). #. Создать приватный и публичный ssh-ключ для пользователя *datamart* (см. раздел :ref:`ssh_key`). #. Скопировать публичный ключ на сервер (см. раздел :ref:`copy_ssh_key_server`). #. Скопировать архив программы (см. раздел :ref:`copy_lite`). #. Установить Docker (см. раздел :ref:`docker_install`). #. Установить библиотеку *python-docker-py* (см. раздел :ref:`python_docker_py_install`). #. Настроить логирование (см. раздел :ref:`setting_up_logging`). #. Перезапустить Docker (см. раздел :ref:`docker_restart`). #. Добавить пользователя *datamart* в группу *docker* (см. раздел :ref:`docker_add_user_to_group`). #. Настроить Ansible (см. раздел :ref:`setting_ansible`). .. _os_install: Установка операционной системы ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Установка CentOS """""""""""""""" Подробная инструкция по установке операционной системы CentOS (версия 7.9) можно посмотреть на официальном сайте разработчика: https://docs.centos.org/en-US/centos/install-guide/. После установки операционной системы CentOS обновите локальную базу пакетов, для этого выполните следующую команду:: sudo yum check-update Установка РЕД ОС """""""""""""""" Подробная инструкция по установке операционной системы РЕД ОС (версии 7.2) можно посмотреть на официальном сайте разработчика в документе `"Руководство администратора по РЕД ОС 7.2" `_. После установки операционной системы РЕД ОС обновите локальную базу пакетов, для этого выполните следующую команду:: sudo yum check-update Установка АЛЬТ Сервер 8 СП """"""""""""""""""""""""""" Подробная инструкция по установке операционной системы АЛЬТ Сервер 8 СП можно посмотреть на официальном сайте разработчика в документе `"Руководство администратора" `_. После установки операционной системы АЛЬТ ОС обновите локальную базу пакетов и установите программу ``sudo``. .. attention:: Обновление пакетов осуществляется только с лицензионного носителя операционной системы "АЛЬТ Сервер 8 СП"! Для некоторых версий ОС "АЛЬТ Сервер 8 СП" необходимо подключение к Интернету на этапе установки пакетов *python3-module-docker* и *python3-websocket-client* из сертифицированного репозитория компании-разработчика операционной системы, подробное описание приведено в разделе :ref:`python_docker_py_install`! Для обновления пакетов войдите в систему с правами пользователя ``root`` и выполните команду:: apt-get update Для установки программы ``sudo`` выполните команду:: apt-get install sudo Отредактируйте права sudo, для этого выполните команду:: visudo В открывшемся файле снимите комментарий со следующей строки:: WHEEL_USERS ALL=(ALL) ALL Выйдите из пользователя ``root``, для этого выполните команду:: exit Установка Astra Linux 1.7 (уровень защищенности "Воронеж") """""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Подробная инструкция по установке операционной системы Astra Linux 1.7 (уровень защищенности "Воронеж") можно посмотреть на официальном сайте разработчика: https://astralinux.ru/products/astra-linux-special-edition/documents-astra-se/. После установки операционной системы CentOS обновите локальную базу пакетов, для этого выполните следующую команду:: sudo yum check-update .. _datamart_user_lite: Создание пользователя ~~~~~~~~~~~~~~~~~~~~~ Для установки программы рекомендуется создать отдельного пользователя, для этого следует выполнить следующие действия: - создать пользователя ``datamart``; - отключить для пользователя пароль при вызове ``sudo`` (необходимо для автоматической установки); - назначить пользователю права ``sudo``. Создание пользователя """"""""""""""""""""" Чтобы создать пользователя ``datamart`` и установить для него пароль, выполните команды:: sudo useradd datamart sudo password for user: sudo passwd datamart sudo password for user: Changing password for user datamart. New password: Retype new password: После успешных действий система выведет сообщение:: passwd: all authentication tokens updated successfully. Отключение пароля """"""""""""""""" Чтобы отключить пароль ``sudo`` для пользователя ``datamart``, надо добавить в настройки (пользователя или группы) директиву ``NOPASSWD``. Для этого последовательно выполните команду:: sudo visudo В открывшемся конфигурационном файле, с помощью команд редактора ``vi`` **Для CentOS и РЕД ОС** Отредактируйте следующие записи:: datamart ALL=(ALL) NOPASSWD: ALL **Для АЛЬТ ОС** Отредактируйте следующие записи:: # uncomment line WHEEL_USERS ALL=(ALL) NOPASSWD: ALL Сохраните изменения и закройте файл. Добавление пользователя в группу администраторов """""""""""""""""""""""""""""""""""""""""""""""" Чтобы добавить пользователя в группу администраторов, у которых есть права выполнения команды ``sudo``, выполните следующую команду:: sudo usermod -aG wheel datamart Для проверки вы можете переключиться в учетную запись ``datamart`` и вывести список содержимого директории ``/root``, которое обычно доступно только для пользователя ``root user``:: su -datamart Password: sudo ls -la /root .. _firewall_off: Отключение межсетевого экрана ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Для CentOS и RedOS """""""""""""""""" Для корректной установки потребуется отключить службу ``FirewallD`` операционной системы CentOS. Что просмотреть текущий статус работы приложения используйте команду ``firewall-cmd``:: sudo firewall-cmd --state В случае, если служба ``FirewallD`` запущена, команда выше выведет следующее сообщение:: running Вы можете временно остановить службу ``FirewallD`` для этого выполните следующую команду:: sudo systemctl stop firewalld Следует учитывать, что данная команда только временно отключит службу, при последующей перезагрузке служба ``FirewallD`` снова будет запущена. Чтобы отключить автоматический запуск службы ``FirewallD`` при загрузке операционной системы выполните команду :: sudo systemctl disable firewalld После отключения проверьте, что статус службы изменился на ``not running``, для этого выполните команду :: sudo firewall-cmd --state not running Для AltOS """""""""" По умолчанию выключен. Никаких действий не требуется. .. _SELinux_off: Отключение SELinux ~~~~~~~~~~~~~~~~~~ **Только для CentOS и RedOS!** Для корректной установки необходимо отключить SELinux, для этого выполните следующие действия: 1. Проверьте параметры запуска ``SELinux`` при загрузке системы. Для этого выполните следующую команду:: cat /etc/selinux/config 2. Если параметр ``SELINUX`` имеет значение ``enforcing``, отключите запуск ``SELinux`` при загрузке системы. Для этого следует в файле */etc/selinux/config* указать значение ``SELINUX=disabled`` и перезагрузите сервер. ``SELinux`` будет отключен. Открыть и отредактировать файл ``/etc/selinux/config`` можно с помощью редактора ``vi``, для этого выполните команду:: sudo vi /etc/selinux/config 3. Проверьте, что служба отключена. Для этого выполните команду: :: sestatus В ответ вы должны получить:: SELinux status: disabled .. _timezone: Выбор часового пояса ~~~~~~~~~~~~~~~~~~~~ Для CentOS и RedOS """""""""""""""""" Проверьте, что установлен корректный часовой пояс. В нашем случае, на команду ``timedatectl``, должна выводиться строка ``Time zone: Europe/Moscow (MSK, +0300)``. Пример команды:: timedatectl Пример ответа:: Local time: Mon 2021-12-20 12:06:39 MSK Universal time: Mon 2021-12-20 09:06:39 UTC RTC time: Mon 2021-12-20 09:06:49 Time zone: Europe/Moscow (MSK, +0300) NTP enabled: n/a NTP synchronized: no RTC in local TZ: no DST active: n/a Если результат отличается, укажите соответствующий местоположению сервера часовой пояс. Пример команды для выбора московского часового пояса:: sudo timedatectl set-timezone Europe/Moscow Для AltOS """"""""" Пример команды для выбора московского часового пояса:: sudo apt-get install tzdata sudo timedatectl set-timezone Europe/Moscow .. _ssh_connect: Подключение к серверу через SSH-клиент PuTTY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Настройку ssh-подключения к серверу можно выполнить, используя клиент удалённого доступа - `PuTTY `_. .. _ssh_key: Создание SSH-ключей ~~~~~~~~~~~~~~~~~~~ .. attention:: Действия этого раздела необходимо выполнять под созданной учетной записью ``datamart`` (см. раздел :ref:`datamart_user_lite`). Для переключения на учетную запись ``datamart`` выполните команду:: sudo su - datamart Для подключения Ansible к серверу по протоколу SSH необходимо создать SSH-ключи. Для аутентификации пользователя на сервере используются два ключа: *приватный* и *публичный*. Чтобы сгенерировать SSH-ключи для операционной системы Linux, выполните следующие действия: 1. Откройте терминал на компьютере и выполните команду :: ssh-keygen -t rsa Следует оставить все значения по умолчанию. .. note:: Если команда ``ssh-keygen`` не найдена, установите пакет ``openssh``. 2. После выполнения команды будет предложено указать имена файлов, в которые будут сохранены ключи и ввести пароль для закрытого ключа. По умолчанию используется имя ``id_rsa``, ключи будут созданы в директории ``~/.ssh``. Публичная часть ключа будет сохранена в файле с названием ``<имя_ключа>.pub``. 3. Будет выведено следующее сообщение:: Generating public/private rsa key pair. Enter file in which to save the key (/home/datamart/.ssh/id_rsa). 4. Нажмите клавишу **Enter**. После этого ключ будет сохранен в указанную директорию по умолчанию. Далее вам будет предложено ввести кодовое слово для дополнительной защиты ключа. Вы можете пропустить данный шаг и нажать **Enter**. 5. На запрос указать кодовое слово, не вводя его нажмите клавишу **Enter**. Процедура создания ключей завершена, ключи сохранены в директории ``~/.ssh/ `` в файлах ``id_rsa`` и ``id_rsa.pub``. .. _copy_ssh_key_server: Копирование ssh-ключей на сервер ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. attention:: Действия этого раздела необходимо выполнять под созданной учетной записью ``datamart`` (см. раздел :ref:`datamart_user_lite`). Для переключения на учетную запись ``datamart`` выполните команду:: sudo su - datamart Для копирования ssh-ключей в список разрешенных ключей выполните команды:: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys .. _copy_lite: Копирование архива программы ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Для загрузки на сервер файла с архивом программы используйте SFTP-клиент (например, WinSCP или Filezilla). Для авторизации используйте логин и пароль учетной записи администратора(``datamart``) созданной при установке ОС (см. раздел :numref:`datamart_user_lite`). Загрузите файл с архивом программы в домашнюю директорию администратора ( ``~/`` ). 2. Подключитесь по SSH к серверу (см. раздел :ref:`ssh_connect`), используя логин и пароль учетной записи администратора. 3. Переместите файл с архивом программы в домашнюю директорию пользователя ``datamart`` командой:: mv ~/dtm-lite-1.11.1.tgz /home/datamart/ где, - ``dtm-lite-1.11.1.tgz`` - название архива программы. - ``datamart`` - имя пользователя. .. note:: Обратите внимание, что название и версия файла с архивом может отличаться в зависимости от версии программы. Распаковка архива ~~~~~~~~~~~~~~~~~ .. attention:: Действия этого раздела необходимо выполнять под созданной учетной записью ``datamart`` (см. раздел :ref:`datamart_user_lite`). Для переключения на учетную запись ``datamart`` выполните команду:: sudo su - datamart Чтобы распаковать архив, выполните команду:: tar -xzvf dtm-lite-1.11.1.tgz .. note:: Обратите внимание, что название и версия файла с архивом может отличаться в зависимости от версии программы. .. _docker_install: Установка Docker ~~~~~~~~~~~~~~~~ Установка Docker в CentOS """"""""""""""""""""""""" .. attention:: Действия этого раздела необходимо выполнять под созданной учетной записью ``datamart`` (см. раздел :ref:`datamart_user_lite`). Для переключения на учетную запись ``datamart`` выполните команду:: sudo su - datamart Полную инструкцию по установке *Docker* можно просмотреть на официальном сайте разработчиков: https://docs.docker.com/engine/install/centos/. Приведем описание основных шагов инструкции. Проверяем, установлен ли Docker командой:: sudo systemctl status docker Если ответ содержит сообщение:: "Unit docker.service could not be found." Значит *Docker* не найден и нужно его установить. Для установки *Docker* без использования доступа к интернет выполните команду:: sudo yum install rpms/docker/CentOS/7.9/*.rpm Добавляем *Docker* в автозагрузку:: sudo systemctl enable docker Запускаем *Docker*:: sudo systemctl start docker Проверяем работоспособность *Docker* командой:: sudo systemctl status docker Установка Docker в RedOS """""""""""""""""""""""" .. attention:: Действия этого раздела необходимо выполнять под созданной учетной записью ``datamart`` (см. раздел :ref:`datamart_user_lite`). Для переключения на учетную запись ``datamart`` выполните команду:: sudo su - datamart Для установки *Docker* без использования доступа к интернет выполните команду:: sudo yum install rpms/docker/RedOS/7.2/*.rpm Добавляем *Docker* в автозагрузку:: sudo systemctl enable docker Запускаем *Docker*:: sudo systemctl start docker Установка Docker в AltOS """""""""""""""""""""""" .. attention:: Действия этого раздела необходимо выполнять под созданной учетной записью ``datamart`` (см. раздел :ref:`datamart_user_lite`). Для переключения на учетную запись ``datamart`` выполните команду:: sudo su - datamart Установить docker можно следующей командой:: sudo apt-get install docker-ce Удалить сервис ``containerd``:: sudo rm -f /lib/systemd/system/containerd.service Затем необходимо запустить соответствующую службу:: sudo systemctl unmask docker sudo systemctl start docker .. _python_docker_py_install: Установка библиотеки python-docker-py ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Для CentOS и РЕД ОС** Для установки библиотек ``python-docker-py`` без доступа к интернет, выполните следующую команду: :: sudo yum install rpms/python/CentOS/7.9/*.rpm **Для РЕД ОС** :: sudo yum install rpms/python/RedOS/7.2/*.rpm **Для АЛЬТ ОС** .. attention:: В некоторых версиях "АЛЬТ Сервер 8 СП" (например, АЛЬТ Сервер 8.4 СП) в лицензионный диск с операционной системой не входят пакеты *python3-module-docker* и *python3-websocket-client*, поэтому они будут установлены из сертифицированного репозитория компании-разработчика операционной системы, для этого необходим доступ в Интернет! Для установки выполните следующую команду: :: sudo apt-get install python3-module-docker .. _setting_up_logging: Настройка логирования в Docker ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Для CentOS и РЕД ОС** Настройка логирования в *Docker* осуществляется с помощью файла конфигурации. Путь к файлу конфигурации — ``/etc/docker/daemon.json``. Если этого файла не существует, его необходимо создать. Добавьте в файл следующие настройки логирования:: { "log-opts": { "max-file": "1", "max-size": "300m" } } где, - ``max-file`` - ограничение по количеству файлов (настройки ротации). Максимальное количество файлов журнала, которые могут быть созданы. Если при просмотре журналов создаются лишние файлы, самый старый файл удаляется. Действует только тогда, когда ``max-size`` (см. ниже) также установлен. Положительное целое число. По умолчанию ``1``. - ``max-size`` - устанавливает ограничение по размеру лог-файла (``k``, ``m`` или ``g``). По умолчанию - ``1`` (неограниченно). **Для АЛЬТ ОС** Выполните команду:: sudo sed -i 's/journald/json-file/' /etc/docker/daemon.json .. _docker_restart: Перезапуск Docker ~~~~~~~~~~~~~~~~~ Для применения настроек, выполненных на предыдущем шаге необходимо перезапустите *Docker*. **Для CentOS и РЕД ОС** Выполните команду:: sudo systemctl restart docker **Для АЛЬТ ОС** Выполните команду:: sudo systemctl restart docker .. _docker_add_user_to_group: Добавление пользователя в группу docker ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Далее, нужно добавить пользователя ``datamart`` в группу ``docker``. Для этого подключитесь к серверу по SSH (например, через `Putty `_) и выполните команду:: sudo usermod -aG docker datamart .. attention:: Для применения настроек изменения группы выполните повторную авторизацию под пользователем ``datamart``! .. _setting_ansible: Настройка Ansible ~~~~~~~~~~~~~~~~~ .. attention:: Действия этого раздела необходимо выполнять под созданной в учетной записью ``datamart`` (см. раздел :ref:`datamart_user_lite`). Для переключения на учетную запись ``datamart`` выполните команду:: sudo su - datamart Для загрузки docker-образа выполните команду:: docker image load -i images/ansible-2.9-centos-7.tar Чтобы создать ``alias`` для вызова *Ansible* выполните команду:: echo "alias docker-ansible-cmd='docker run --rm -it -v $(pwd)/ansible:/ansible -v ~/.ssh/id_rsa:/root/.ssh/id_rsa --workdir=/ansible cr.yandex/crpl8ogf99r0eaq13vkd/ansible:2.9-centos-7 '" >> .bashrc . .bashrc Далее нужно перечитать конфигурационный файл, чтобы применить созданные ``alias``. для этого выполните команду:: source .bashrc Чтобы проверить установку *Ansible* в контейнере, выполните команду *Ansible*, позволяющую вывести номер версии:: docker-ansible-cmd ansible --version