Общее описание
При установке в закрытом контуре (без доступа с сети Интернет или с существенными ограничениями доступа к сайтам) требуется использовать оффлайн установку NAICE. Данная установка включает в себя:
- Подготовку необходимых VM для развертывания.
- Установку необходимого ПО, которое располагается в репозиториях ОС.
- Скачивание архива с образами докер-контейнеров NAICE и плейбуками установки.
- Подготовку переменных плейбуков установки в соответствии с требованиями инсталляции.
- Установку системы плейбуками Asnible.
Подробное описание работы схемы: v1.1_3.5 Установка с резервированием (без использования 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 Системные требования.
| Раскрыть |
|---|
| title | Подготовка VM при разворачивании на ОС Ubuntu 24.04 LTS |
|---|
|
Установить пакеты docker.io и docker-compose в соответствии с официальной инструкцией: https://docs.docker.com/engine/install/ubuntu/ | Раскрыть |
|---|
| title | Пример установки одной командой |
|---|
| | Без форматирования |
|---|
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 версии: | Блок кода |
|---|
| sudo apt install python3-psycopg2 python3-apt -y |
|
| Раскрыть |
|---|
| title | Подготовка VM при разворачивании на ОС Astra Linux 1.7.X |
|---|
|
| Информация |
|---|
Для разворачивания 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 |
|
| Раскрыть |
|---|
| title | Пример выполнения одной командой |
|---|
| | Без форматирования |
|---|
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 |
|
|
| Раскрыть |
|---|
| title | Подготовка VM при разворачивании на ОС Astra Linux 1.8.X |
|---|
|
Установить из официального репозитория 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 |
|
|
| Раскрыть |
|---|
| title | Подготовка VM при разворачивании на ОС RedOS 7.3.X/8.0.X |
|---|
|
Установить пакеты 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 |
|
|
Подготовка VM для выполнения плейбуков Ansible
Требования с ОС хоста запуска плейбуков Ansible
| Предупреждение |
|---|
Для запуска плейбуков 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 |
|
Проверить версию комьюнити 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-geo.yml, указав необходимые целевые адреса установки и логин/пароль для доступа:
| Блок кода |
|---|
| language | yaml |
|---|
| title | inventory/hosts-geo.yml |
|---|
|
---
# Local actions
all:
hosts:
localhost:
ansible_connection: local
ansible_user: <логин пользователя хоста, под которым выполняется запуск плейбука>
ansible_ssh_pass: <пароль пользователя хоста, под которым выполняется запуск плейбука>
ansible_become_password: <пароль для повышения привилегий (sudo) пользователя хоста, под которым выполняется запуск плейбука>
# Группа хостов для установки NAICE с резервированием
geo:
hosts:
master_host:
ansible_host: <IP-адрес хоста 1 для NAICE>
ansible_port: 22
ansible_user: <логин пользователя>
ansible_ssh_pass: <пароль пользователя>
ansible_become_password: <пароль для повышения привилегий (sudo)>
backup_host:
ansible_host: <IP-адрес хоста 2 для NAICE>
ansible_port: 22
ansible_user: <логин пользователя>
ansible_ssh_pass: <пароль пользователя>
ansible_become_password: <пароль для повышения привилегий (sudo)>
# Группа хостов для установки 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-geo.yml |
Результатом выполнения плейбука будет установка СУБД PostgreSQL в кластере на серверах, указанных в node_primary и node_standby. Мастер-нода кластера будет находиться на хосте node_primary.
Пример завершения плейбука:
| Блок кода |
|---|
PLAY RECAP **********************************************************************************************************************************************************************************************************************************
node_primary : ok=83 changed=23 unreachable=0 failed=0 skipped=40 rescued=0 ignored=0
node_standby : ok=57 changed=23 unreachable=0 failed=0 skipped=25 rescued=0 ignored=0 |
Проверить состояние кластера СУБД PostgreSQL в соответствии с инструкцией Проверка состояния кластера PostgreSQL.
Установка кластера NAICE
| Предупреждение |
|---|
Перед установкой необходимо убедиться, что роль Primary принадлежит ноде PostgreSQL, указанной в переменной node_primary "ansible_host". При необходимости выполнить переключение роли Primary. В противном случае установка не сможет быть завершена. |
При необходимости выполнить настройку переменных плейбука, расположенных в файле group_vars/all.yml. Подготовка переменных не отличается от онлайн установки и выполняется аналогичным способом. Подробнее с назначением переменных можно ознакомиться на странице: Настройка переменных в файле group_vars/all.yml
| Предупреждение |
|---|
Для корректного взаимодействия с источником идентификаций типа ACTIVE DIRECTORY, необходимо создать две учетных записи компьютера, которые будут использоваться для взаимодействия по протоколу netlogon в ходе проверки паролей пользователей. Каждая нода NAICE должна использовать отдельную УЗ компьютера. Для этого, в файле переменных group_vars/all.yml необходимо указать значения переменных: | Блок кода |
|---|
| cetus_netlogon_pc1_name: "<Имя компьютера 1>"
cetus_netlogon_pc1_pass: "<Пароль компьютера 1>"
cetus_netlogon_pc2_name: "<Имя компьютера 2>"
cetus_netlogon_pc2_pass: "<Пароль компьютера 2>" |
и сохранить перед выполнением плейбука установки NAICE. | Примечание |
|---|
В случае наличия данных настроек в конфигурации параметров NAICE они имеют приоритет перед указанными в веб-интерфейсе! |
Подробнее о настройке взаимодействия с Active Directory написано в разделе: v1.1_4.1.1 Настройка интеграции с Active Directory |
Для установки необходимо выполнить плейбук:
| Блок кода |
|---|
|
ansible-playbook geo-naice-services.yml -i inventory/hosts-geo.yml |
Пример успешного завершения работы плейбука:
| Блок кода |
|---|
PLAY RECAP **********************************************************************************************************************************************************************************************************************************
backup_host : ok=89 changed=20 unreachable=0 failed=0 skipped=29 rescued=0 ignored=0
master_host : ok=95 changed=26 unreachable=0 failed=0 skipped=42 rescued=0 ignored=0
|
После установки проверить состояние кластера NAICE в соответствии с инструкцией Проверка состояния кластера NAICE.