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:
For a detailed description of the deployment scheme, refer to: v1.2_3.5 High-availability installation (using VRRP)
To deploy NAICE in a high-availability configuration, it is necessary to prepare the target VMs in accordance with the requirements specified in v1.2_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.
Deploy the VM in accordance with the requirements specified in section v1.2_3.1 System requirements.
Install the docker.io and docker-compose packages according to the official instructions: https://docs.docker.com/engine/install/ubuntu/
Install packages and all required dependencies from the official Ubuntu repository corresponding to the OS version in use: Deploying NAICE on 2 VMs:
Deploying NAICE on 4 VMs:VMs hosting the PostgreSQL cluster:
VMs hosting the NAICE cluster:
|
Install packages from the official Astra Linux repository:
The Docker Compose plugin cannot be installed from the Astra Linux repository, as it contains an outdated version. It must be downloaded from the following link to the target host: https://cloud.eltex-co.ru/index.php/s/yKlAcy83VVPEfzx.
Example download using
On the target host, create a directory:
Place the downloaded download file into this directory and rename it to docker-compose:
Change the file owner to root:
Make the file executable:
Install packages required for deploying NAICE services on the virtual machines:
|
Install the required packages along with all dependencies from the official Astra Linux repository on all hosts that will be used for the installation:
Install packages required for deploying NAICE services on the virtual machines:
|
Install Docker and Docker Compose packages from the official RedOS repository:
Install packages required for deploying NAICE services on the virtual machines:
|
Install the docker.io and docker-compose packages according to the official instructions: https://docs.docker.com/engine/install/debian/
Install packages and all required dependencies from the official Debian repository corresponding to the OS version in use: Deploying NAICE on 2 VMs:
Deploying NAICE on 4 VMs:VMs hosting the PostgreSQL cluster:
VMs hosting the NAICE cluster:
|
To run Ansible playbooks, use a VM running Ubuntu 24. |
Install the Ansible package along with all dependencies and other required software.
sudo apt install ansible sshpass -y |
If Astra Linux 1.7.X is used as the target OS for NAICE deployment, ensure that the Ansible version is 2.16.3:
Using a different Ansible version may cause unexpected behavior during installation. If necessary, reinstall Ansible and explicitly downgrade to the required version, 2.16.3:
|
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 |
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 |
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.2_1.5 Stable versions.
If necessary, the file can be downloaded to any PC with Internet access to the website |
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/Bnc2ntTyWDjOCeR/download -O naice_install_2026-08-07.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-08-07.tar.gz cd naice_install/ansible |
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 |
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 |
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.