Общее описание

При установке в закрытом контуре (без доступа с сети Интернет или с существенными ограничениями доступа к сайтам), требуется использовать оффлайн установку NAICE. Данная установка включает в себя:

  1. Подготовку необходимых VM для развертывания.
  2. Установку необходимого ПО, которое располагается в репозиториях ОС.
  3. Скачивание архива с образами докер-контейнеров NAICE и плейбуками установки.
  4. Подготовку переменных плейбуков установки в соответствии с требованиями инсталляции.
  5. Установку системы плейбуками Asnible.

Подробное описание работы схемы: v1.1_3.4 Установка с резервированием (c использованием VRRP)

Подготовка VM

Для разворачивания NAICE в схеме с резервированием, потребуется подготовить целевые VM для установки в соответствии с требованиями v1.1_3.1 Системные требования.

IP-адреса VM, на которых разворачивается NAICE, должны быть заданы статически!

Для разворачивания VM требуется установить ряд пакетов, содержащихся в официальных репозиториях используемой ОС.

Для установки таких пакетов может использоваться локальное зеркало официального репозитория, размещенное в закрытом контуре и доступное для установки на  целевую машину с помощью пакетного менеджера APT (Ubuntu, Astra Linux) или YUM (RedOS).

Также требуется подготовить отдельную VM для запуска плейбуков Ansible.

Подготовка VM для установки NAICE и СУБД PostgreSQL

Развернуть VM в соответствии с v1.1_3.1 Системные требования.

Установить пакеты docker.io и docker-compose в соответствии с официальной инструкцией: https://docs.docker.com/engine/install/ubuntu/

sudo apt-get update && \
sudo apt-get install ca-certificates curl && \
sudo install -m 0755 -d /etc/apt/keyrings && \
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \
sudo chmod a+r /etc/apt/keyrings/docker.asc && \
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && \
sudo apt-get update && \
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y


Проверить корректность установки и версии docker и docker-compose (версия не должна быть ниже указанной):

$ sudo docker --version
Docker version 29.2.1, build a5c7197

$ sudo docker compose version
Docker Compose version v5.1.0


Установить пакеты и все необходимые зависимости из официального репозитория Ubuntu соответствующей версии:

Развёртывание NAICE на 2-х VM

sudo apt install python3-psycopg2 python3-apt keepalived logrotate -y

Развёртывание NAICE на 4-х VM

VM, на которых будет развернут кластер СУБД PostgreSQL:

sudo apt install python3-psycopg2 python3-apt -y

VM, на которых будет развернут кластер NAICE:

sudo apt install python3-psycopg2 python3-apt keepalived logrotate -y


При установке на ОС Astra Linux версии 1.7.6 и выше с установленным обновлением БЮЛЛЕТЕНЬ № 2024-1108SE17MD необходимо отключить контроль разрешения исполнения кода в программном стеке в соответствии с инструкцией Нарушение работы некоторых программ после установки оперативного обновления Astra Linux Special Edition 1.7.6 ! В противном случае запуск ПО NAICE будет невозможен!

IP-адрес VM, на которой разворачивается NAICE должен быть задан статически!

Для разворачивания VM требуется установить ряд пакетов, содержащихся в официальных репозиториях используемой ОС.

Для установки таких пакетов может использоваться локальное зеркало официального репозитория, размещенное в закрытом контуре и доступное для установки на  целевую машину с помощью пакетного менеджера APT.

Установить пакеты из официального репозитория Astra Linux:

sudo apt install docker.io python3-apt python3-psycopg2 python3-requests -y

Дополнение docker compose нельзя установить из репозитория Astra Linux т.к. там находится старая версия. Требуется загрузить его с нашего сайта по ссылке https://cloud.eltex-co.ru/index.php/s/yKlAcy83VVPEfzx  на целевой хост.

При необходимости можно загрузить на любой ПК, с которого есть доступ через сеть Интернет к сайту https://cloud.eltex-co.ru по ссылке выше, и выполнить его перенос на целевой хост установки любым доступным SCP-менеджером в домашнюю директорию пользователя, из под которого будет выполняться установка.

Пример загрузки файла с использованием утилиты wget:

wget https://cloud.eltex-co.ru/index.php/s/yKlAcy83VVPEfzx/download -O docker-compose-linux-x86_64

На целевом хосте создать папку:

sudo mkdir -pv /usr/local/lib/docker/cli-plugins

Поместить в неё скачанный файл download под именем docker-compose:

sudo mv -v docker-compose-linux-x86_64 /usr/local/lib/docker/cli-plugins/docker-compose

Семенить владельца файла на root:

sudo chown root:root -v /usr/local/lib/docker/cli-plugins/docker-compose

Сделать файл исполняемым:

sudo chmod 755 -v /usr/local/lib/docker/cli-plugins/docker-compose

Проверить корректность установки и версии docker и docker-compose (версия не должна быть ниже указанной):

$ sudo docker --version
Docker version 28.3.3.astra1, build

$ sudo docker compose version
Docker Compose version v2.2.3


sudo apt install docker.io -y && \
wget https://cloud.eltex-co.ru/index.php/s/yKlAcy83VVPEfzx/download -O docker-compose-linux-x86_64 && \
sudo mkdir -pv /usr/local/lib/docker/cli-plugins && \
sudo mv -v docker-compose-linux-x86_64 /usr/local/lib/docker/cli-plugins/docker-compose && \
sudo chown root:root -v /usr/local/lib/docker/cli-plugins/docker-compose && \
sudo chmod 755 -v /usr/local/lib/docker/cli-plugins/docker-compose && \
sudo docker --version && \
sudo docker compose version


Установить на виртуальные машины пакеты, предназначенные для разворачивания сервисов NAICE:

sudo apt install keepalived logrotate -y

При установке на ОС Astra Linux версии 1.8.2 и выше с установленным обновлением БЮЛЛЕТЕНЬ № 2024-1108SE17MD необходимо отключить контроль разрешения исполнения кода в программном стеке в соответствии с инструкцией Нарушение работы некоторых программ после установки оперативного обновления Astra Linux Special Edition 1.7.6 ! В противном случае запуск ПО NAICE будет невозможен!

IP-адрес VM, на которой разворачивается NAICE должен быть задан статически!

Установить из официального репозитория Astra Linux необходимые пакеты со всеми зависимостями на все хосты, которые будут использоваться для установки:

sudo apt install docker.io docker-compose-v2 python3-apt python3-psycopg2 python3-requests -y


Проверить корректность установки и версии docker и docker-compose (версия не должна быть ниже указанной):

$ sudo docker --version
Docker version 28.3.3.astra1, build

$ sudo docker compose version
Docker Compose version 2.39.2.astra1

Установить виртуальные машины, предназначенные для разворачивания сервисов NAICE пакеты:

sudo apt install keepalived logrotate -y

Установить пакеты docker-ce и docker-compose из официального репозитория RedOS:

sudo yum install docker-ce docker-compose python3-psycopg2 python3-requests -y

Проверить корректность установки и версии docker и docker-compose (версия не должна быть ниже указанной):

$ sudo docker --version
Docker version 28.1.1, build 4eba377

$ sudo docker compose version
Docker Compose version 5.0.2


Установить виртуальные машины, предназначенные для разворачивания сервисов NAICE пакеты:

sudo yum install keepalived logrotate -y


Подготовка VM для выполнения плейбуков Ansible

Требования к ОС хоста запуска плейбуков Ansbible

Для запуска плейбуков Ansible требуется использовать VM с ОС Ubuntu 24!

Установка Ansible

Установить пакеты ansible со всеми зависимостями и прочее необходимое ПО:

sudo apt install ansible sshpass -y

Если в качестве целевой ОС используется Astra Linux 1.7.X, убедиться, что установлена версия Ansible 2.16.3:

$ ansible --version
ansible [core 2.16.3]
  config file = None
  configured module search path = ['/home/tester/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  ansible collection location = /home/tester/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.12.3 (main, Jun 18 2025, 17:59:45) [GCC 13.3.0] (/usr/bin/python3)
  jinja version = 3.1.2
  libyaml = True

Использование другой версии Ansible может привести к некорректному поведению в ходе установки!

При необходимости переустановить Ansible, принудительно указав версию 2.16.3:

sudo apt install ansible-core=2.16.3-0ubuntu2


Проверка и обновление версии community.docker

Проверить версию комьюнити docker командой:

ansible-galaxy collection list | grep community.docker

Если версия ниже 4.7.0, обновить комьюнити. Для этого требуется скачать и поместить на целевой хост файл community-docker-4.7.0.tar.gz.

Прямая ссылка на скачивание файла: https://cloud.eltex-co.ru/index.php/s/9Hv6p4yz611fDXb

При необходимости архив можно загрузить на любой ПК, с которого есть доступ через сеть Интернет к сайту https://cloud.eltex-co.ru по ссылке выше и выполнить его перенос на целевой хост установки любым доступным SCP-менеджером в домашнюю директорию пользователя, из под которого будет выполняться установка.

Можно скачать командой wget на целевой хост, если открыт доступ к адресу https://cloud.eltex-co.ru:

wget https://cloud.eltex-co.ru/index.php/s/9Hv6p4yz611fDXb/download -O community-docker-4.7.0.tar.gz

Установить коммьюнити командой (без использования sudo):

$ ansible-galaxy collection install community-docker-4.7.0.tar.gz

Проверить версию коммьюнити:

$ ansible-galaxy collection list | grep community.docker
community.docker                         4.7.0  <--- Новая установленная версия
community.docker                         X.X.X  <--- Старая версия до обновления

Загрузка архива NAICE для установки в закрытом контуре и подготовка к установке

Загрузить на хост выполнения плейбуков ansible архив с образами контейнеров NAICE и плейбуками установки.

Скачать последнюю стабильную версию NAICE для установки в закрытом контуре, представленную на странице: v1.1_1.5 Стабильные версии

При необходимости архив можно загрузить на любой ПК, с которого есть доступ через сеть Интернет к сайту https://cloud.eltex-co.ru по ссылке выше и выполнить его перенос на целевой хост установки любым доступным SCP-менеджером в домашнюю директорию пользователя, из под которого будет выполняться установка.

Можно скачать командой wget на целевой хост, если открыть доступ к адресу https://cloud.eltex-co.ru:

wget https://cloud.eltex-co.ru/index.php/s/EJrZJMZbOVmGHXH/download -O naice_install_2026-03-06.tar.gz

Распаковать на целевом хосте полученный архив и перейти в директорию ansible внутри полученной директории:

tar xzvf naice_install_2026-03-06.tar.gz
cd naice_install/ansible

Подготовка файла с описанием IP-адресов хостов и учетных данных для доступа

Отредактировать файл inventory/hosts-cluster.yml, указав необходимые целевые адреса установки и логин/пароль для доступа:

inventory/hosts-cluster.yml
---
# Local actions
all:
  hosts:
    localhost:
      ansible_connection: local
      ansible_user: <логин пользователя хоста, под которым выполняется запуск плейбука>
      ansible_ssh_pass: <пароль пользователя хоста, под которым выполняется запуск плейбука>
      ansible_become_password: <пароль для повышения привилегий (sudo) пользователя хоста, под которым выполняется запуск плейбука>

# Группа хостов для установки NAICE с резервированием
reservation:
  hosts:
    master_host:
      ansible_host: <IP-адрес хоста 1 для NAICE>
      ansible_port: 22
      ansible_user: <логин пользователя>
      ansible_ssh_pass: <пароль пользователя>
      ansible_become_password: <пароль для повышения привилегий (sudo)>
      keepalived_interface: <наименование интерфейса, на котором будет настроен VIP-адрес, например eth0>

    backup_host:
      ansible_host: <IP-адрес хоста 2 для NAICE>
      ansible_port: 22
      ansible_user: <логин пользователя>
      ansible_ssh_pass: <пароль пользователя>
      ansible_become_password: <пароль для повышения привилегий (sudo)>
      keepalived_interface: <наименование интерфейса, на котором будет настроен VIP-адрес, например eth0>
  vars:
    keepalived_vip: <VIP-адрес, без маски, например 192.168.0.11>

# Группа хостов для установки postgres-cluster (primary + standby)
postgres-cluster:
  hosts:
    node_primary:
      ansible_host: <IP-адрес хоста для node-1 PostgreSQL>
      ansible_port: 22
      ansible_user: <логин пользователя>
      ansible_ssh_pass: <пароль пользователя>
      ansible_become_password: <пароль для повышения привилегий (sudo)>
      forwarded_postgresql_port: 5432
      forwarded_ssh_port: 15432
    node_standby:
      ansible_host: <IP-адрес хоста для node-2 PostgreSQL>
      ansible_port: 22
      ansible_user: <логин пользователя>
      ansible_ssh_pass: <пароль пользователя>
      ansible_become_password: <пароль для повышения привилегий (sudo)>
      forwarded_postgresql_port: 5432
      forwarded_ssh_port: 15432

При разворачивании NAICE на двух хостах, IP-адреса целевых хостов для установки совпадают для master_host и node_primary, а так же для backup_host и node_standby.

Установка NAICE

Установка кластера СУБД PostgreSQL

Выполнить плейбук:

ansible-playbook install-postgres-cluster.yml -i inventory/hosts-cluster.yml

Результатом выполнения плейбука будет установка СУБД PostgreSQL в кластере на серверах, указанных в node_primary и node_standby. Мастер-нода кластера будет находиться на хосте node_primary.

Пример успешного завершения плейбука:

PLAY RECAP **********************************************************************************************************************************************************************************************************************************
node_primary               : ok=61   changed=22   unreachable=0    failed=0    skipped=26   rescued=0    ignored=0   
node_standby               : ok=45   changed=22   unreachable=0    failed=0    skipped=17   rescued=0    ignored=0   

Проверить состояние кластера СУБД PostgreSQL в соответствии с инструкцией Проверка состояния кластера PostgreSQL.

Установка кластера NAICE

Перед установкой необходимо убедиться, что роль Primary принадлежит ноде PostgreSQL, указанной в переменной node_primary "ansible_host". При необходимости выполнить переключение роли Primary. В противном случае установка не сможет быть завершена.


При необходимости выполнить настройку переменных плейбука, расположенных в файле group_vars/all.yml. Подготовка переменных не отличается от онлайн установки и выполняется аналогичным способом. Подробнее с назначением переменных можно ознакомиться на странице: Настройка переменных в файле group_vars/all.yml

Для установки необходимо выполнить плейбук:

ansible-playbook reservation-naice-services.yml -i inventory/hosts-cluster.yml

Пример успешного завершения плейбука:

PLAY RECAP **********************************************************************************************************************************************************************************************************************************
backup_host                : ok=82   changed=26   unreachable=0    failed=0    skipped=32   rescued=0    ignored=0   
master_host                : ok=88   changed=32   unreachable=0    failed=0    skipped=45   rescued=0    ignored=0   

После установки проверить состояние кластера NAICE в соответствии с инструкцией Проверка состояния кластера NAICE.

  • Нет меток