General description
When deploying in an isolated network environment (without internet access or with significant restrictions on access to external websites), the offline NAICE installation method must be used. This installation process includes:
- Preparing the required VMs for deployment.
- Installing the required software available in the operating system repositories.
- Downloading the archive containing NAICE Docker container images and installation playbooks.
- Preparing installation playbook variables according to the deployment requirements.
- Installing the system using Ansible playbooks.
For a detailed description of the deployment scheme, refer to: v1.1_3.3 High-availability installation (using VRRP)
Preparing the VM
To deploy NAICE in a high-availability configuration, it is necessary to prepare the target VMs in accordance with the requirements specified in v1.1_3.1 System requirements.
The IP addresses of the VMs on which NAICE is deployed must be configured statically.
To deploy the VM, it is required to install a set of packages available in the official repositories of the operating system in use.
A local mirror of the official repository, deployed within an isolated network and accessible from the target machine, can be used to install these packages via a package manager such as APT (Ubuntu, Astra Linux) or YUM (RedOS).
A separate VM for running Ansible playbooks must also be prepared.
Preparing the VM for NAICE and PostgreSQL deployment
Deploy the VM in accordance with the requirements specified in section v1.1_3.1 System requirements.
Preparing the VM for running Ansible playbooks
Requirements for the host OS running Ansible playbooks
To run Ansible playbooks, use a VM running Ubuntu 24, RedOS 8.0.2, or Astra Linux 1.8.6.
Installing Ansible
Install the Ansible package along with all dependencies and other required software.
If Astra Linux 1.7.X is used as the target OS for NAICE deployment, ensure that the Ansible version is not higher than 2.17:
$ ansible --version
Installation is not supported on newer Ansible versions, as Astra Linux 1.7.X uses Python 3.7, which is not supported.
If necessary, reinstall Ansible and downgrade to the required version.
Checking and updating the community.docker version
Check the community version:
ansible-galaxy collection list | grep community.docker
If the version is lower than 4.7.0, update the Ansible community.docker. Download and place the community-docker-4.7.0.tar.gz file on the target host:
Direct link to download the file: https://cloud.eltex-co.ru/index.php/s/9Hv6p4yz611fDXb
If necessary, the file can be downloaded to any PC with Internet access to the website https://cloud.eltex-co.ru (using the link above) and then transferred to the target host using any available SCP client into the home directory of the user who will perform the installation.
Download it directly to the target host using the wget command if the address https://cloud.eltex-co.ru is accessible:
wget https://cloud.eltex-co.ru/index.php/s/9Hv6p4yz611fDXb/download -O community-docker-4.7.0.tar.gz
Install community using the command (without using sudo):
$ ansible-galaxy collection install community-docker-4.7.0.tar.gz
Check the community version:
$ ansible-galaxy collection list | grep community.docker community.docker 4.7.0 <--- Latest version community.docker X.X.X <--- Previous version
Downloading the NAICE archive for installation in an isolated network and preparing for installation
Download the archive containing NAICE container images and installation playbooks to the host used for running the Ansible playbooks.
Download the latest stable version of NAICE for installation in an isolated network from the page: v1.1_1.5 Stable versions.
If necessary, the file can be downloaded to any PC with Internet access to the website https://cloud.eltex-co.ru (using the link above) and then transferred to the target host using any available SCP client into the home directory of the user who will perform the installation.
Download it directly to the target host using the wget command if the address https://cloud.eltex-co.ru is accessible:
wget https://cloud.eltex-co.ru/index.php/s/iWhUOSdtaIYGnim/download -O naice_install_2026-04-17.tar.gz
Extract the downloaded archive on the target host and navigate to the ansible directory inside the extracted directory:
tar xzvf naice_install_2026-04-17.tar.gz cd naice_install/ansible
Preparing the file with host IP addresses and access credentials
Edit the inventory/hosts-cluster.yml file by specifying the required target installation addresses and username/password credentials:
---
# Local actions
all:
hosts:
localhost:
ansible_connection: local
ansible_user: <username of the host user running the playbook>
ansible_ssh_pass: <password of the host user running the playbook>
ansible_become_password: <sudo password of the host user running the playbook>
# Host group for high-availability NAICE deployment
reservation:
hosts:
master_host:
ansible_host: <IP address of host 1 for NAICE>
ansible_port: 22
ansible_user: <username>
ansible_ssh_pass: <user password>
ansible_become_password: <sudo password>
keepalived_interface: <interface name on which the VIP address will be configured, e.g. eth0>
backup_host:
ansible_host: <IP address of host 2 for NAICE>
ansible_port: 22
ansible_user: <username>
ansible_ssh_pass: <user password>
ansible_become_password: <sudo password>
keepalived_interface: <interface name on which the VIP address will be configured, e.g. eth0>
vars:
keepalived_vip: <VIP address without mask, e.g. 192.168.0.11>
# Host group for postgres-cluster deployment (primary + standby)
postgres-cluster:
hosts:
node_primary:
ansible_host: <IP address of the host for PostgreSQL node-1>
ansible_port: 22
ansible_user: <username>
ansible_ssh_pass: <user password>
ansible_become_password: <sudo password>
forwarded_postgresql_port: 5432
forwarded_ssh_port: 15432
node_standby:
ansible_host: <IP address of the host for PostgreSQL node-2>
ansible_port: 22
ansible_user: <username>
ansible_ssh_pass: <user password>
ansible_become_password: <sudo password>
forwarded_postgresql_port: 5432
forwarded_ssh_port: 15432
When deploying NAICE on two hosts, the target installation host IP addresses are the same for master_host and node_primary, as well as backup_host and node_standby.
Installing NAICE
Installing the PostgreSQL database cluster
Run the playbook:
ansible-playbook install-postgres-cluster.yml -i inventory/hosts-cluster.yml
As a result, PostgreSQL will be installed as a cluster on the servers specified in node_primary and node_standby. The master node of the cluster will be located on the node_primary host.
Example of successful playbook completion:
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
Installing the NAICE cluster
Before starting the installation, make sure that the Primary role belongs to the PostgreSQL node specified in the variable node_primary “ansible_host”. If necessary, perform a Primary role switch. If this requirement is not met, the installation cannot be completed.
If necessary, configure playbook variables in the group_vars/all.yml file. Variable preparation is the same as for online installation and is performed in the same way. For more details on variable descriptions, refer to Configuring variables in the file group_vars/all.yml.
Run the NAICE installation playbook:
ansible-playbook reservation-naice-services.yml -i inventory/hosts-cluster.yml
Example of successful playbook completion:
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
After installation, verify the status of the NAICE cluster in accordance with the Checking the NAICE cluster state instructions.