Общее описание
При установке в закрытом контуре (без доступа с сети Интернет или с существенными ограничениями доступа к сайтам), требуется использовать оффлайн установку NAICE. Данная установка включает в себя:
- Подготовку необходимых VM для развертывания.
- Установку необходимого ПО, которое располагается в репозиториях ОС.
- Скачивание архива с образами докер-контейнеров NAICE и плейбуками установки.
- Подготовку переменных плейбуков установки в соответствии с требованиями инсталляции.
- Установку системы плейбуками 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 Системные требования.
Подготовка 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, указав необходимые целевые адреса установки и логин/пароль для доступа:
---
# 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.