Install ADCM

ADCM requires a separate host. Before installing ADCM, we recommend to read its documentation.

The installation steps are listed below.

Step 1. Check prerequisites

Software and hardware requirements

ADCM is a software that is distributed in the form of a Docker image. To install it, you need:

  • One of the following operating systems (archived versions are not supported or tested):

    • Ubuntu 22.04

    • CentOS 7

    • RHEL 7

    • Alt Linux SP 8

    • Astra Linux SE 1.7 Orel

    • RED OS 7.3 Certified edition

  • A user account with sudo privileges.

  • An access to the official repository of CentOS Extras and CentOS Base. This repository is enabled by default, but if you have disabled it — you need to re-enable it (e.g. via editing the repository configuration file in the /etc/yum.repos.d/ directory).

  • The software package installer YUM/APT.

  • The hardware that meets the following conditions.

    IMPORTANT

    The following system requirements are minimal. The target sizing should be calculated based on the customer requirements.

    • CPU: 4 CPU cores;

    • RAM: 16 GB;

    • HDD: 50 GB.

To grant the user the necessary rights to install ADCM, do the following:

  1. Grant the root privileges for the user:

  • CentOS 7/RHEL 7/RED OS 7.3/Alt Linux SP 8

  • Ubuntu 22.04/Astra Linux SE 1.7 Orel

$ sudo usermod -aG wheel <user>

where <user> is a username.

$ sudo usermod -aG sudo <user>

where <user> is a username.

  1. Make sure that the /etc/sudoers file contains the record specified below depending on the operating system with the following command:

    $ sudo vi /etc/sudoers

    To return to the command line, press Esc, type :q!, and press Enter.

  • CentOS 7/RHEL 7/RED OS 7.3

  • Ubuntu 22.04/Astra Linux SE 1.7 Orel

  • Alt Linux SP 8

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
## Uncomment to allow members of group wheel to execute any command
WHEEL_USERS ALL=(ALL:ALL) ALL

Install Docker

CAUTION

Do not install Docker from the official Docker site. Instead, use the official repositories of your Linux distribution. The repositories provided by operating system developers tend to be more stable and secure.

Below are the step-by-step procedures of Docker installation on the examples of several operating systems supported by ADCM. These steps may differ for operating system versions other than those specified on tabs.

  • CentOS 7/RHEL 7

  • Ubuntu 22.04

  • Alt Linux SP 8

  • Astra Linux SE 1.7 Orel

  • RED OS 7.3

  1. Using root privileges, update all packages that are currently installed in your system:

    $ sudo yum update -y
  2. Install the packages required for Docker installation and usage:

    $ sudo yum install -y yum-utils docker device-mapper-persistent-data lvm2

    where:

    • yum-utils is the package that provides the yum-config-manager utility;

    • device-mapper-persistent-data and lvm2 are packages required by the devicemapper storage driver.

  3. Start Docker:

    $ sudo systemctl start docker
  4. Enable Docker as a system service:

    $ sudo systemctl enable docker
  1. Using root privileges, update all packages that are currently installed in your system:

    $ sudo apt-get update
  2. Install the packages required for Docker installation and usage:

    $ sudo apt-get install ca-certificates curl

    where:

    • ca-certificates is the package of Root CA certificates;

    • curl is the package for working with web resources.

    Confirm the use of additional disk space during the execution of the command.

  3. Add the official GPG key for the Docker repository:

    $ 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
  4. Add the Docker repository:

    $ echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
    $(. /etc/os-release && echo "jammy") stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. Update all packages, including packages for the Docker repository:

    $ sudo apt-get update
  6. Install Docker Engine:

    $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

    Confirm the use of additional disk space during the execution of the command.

  7. Start Docker:

    $ sudo systemctl start docker
  8. Enable Docker as a system service:

    $ sudo systemctl enable docker
  1. Using root privileges, update all packages that are currently installed in your system:

    $ sudo apt-get update
  2. Install Docker Engine:

    $ sudo apt-get install docker-engine

    Confirm the use of additional disk space during the execution of the command.

  3. Start and enable Docker as a system service:

    $ sudo systemctl enable --now docker
  1. Using root privileges, update all packages that are currently installed in your system:

    $ sudo apt-get update
  2. Install the packages required for Docker installation and usage:

    $ sudo apt-get install ca-certificates curl net-tools

    where:

    • ca-certificates is the package of Root CA certificates;

    • curl is the package for working with web resources;

    • net-tools is the package for controlling the network subsystem of the Linux kernel, in particular for executing the netstat command.

    Confirm the use of additional disk space during the execution of the command.

  3. Add the official GPG key for the Docker repository:

    $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
  4. Add the Docker repository:

    $ echo "deb [arch=amd64] https://download.docker.com/linux/debian stretch stable" | sudo tee -a /etc/apt/sources.list
  5. Update all packages, including packages for the Docker repository:

    $ sudo apt-get update
  6. Install Docker Engine:

    $ sudo apt install docker-ce docker-ce-cli containerd.io

    Confirm the use of additional disk space during the execution of the command.

  7. Start Docker:

    $ sudo systemctl start docker
  8. Enable Docker as a system service:

    $ sudo systemctl enable docker
  1. Install Docker Engine:

    $ sudo dnf install docker-ce docker-ce-cli

    Confirm the use of additional disk space during the execution of the command.

  2. Start and enable Docker as a system service:

    $ sudo systemctl enable docker --now

Disable SELinux

NOTE
It is recommended to disable SELinux only if CentOS 7 or RHEL 7 is used.

To disable SELinux permanently, set SELINUX=disabled in the /etc/selinux/config file, and reboot your system.

You can edit the file via the vi or vim command:

$ sudo vi /etc/selinux/config

The content of the changed file should look like this:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

You can also disable SELinux temporarily via the following command:

$ sudo setenforce 0

Still, it is strongly recommended to disable SELinux permanently, so that it does not restart on each system reboot.

CAUTION

Do not forget to reboot your host after SELinux is disabled.

Stop firewall

If you use the firewalld service, stop it before installing ADCM.

Before stopping firewalld, make sure that the firewalld service is installed, started, and enabled:

$ sudo systemctl status firewalld

The example of the command execution result:

● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2024-12-02 10:02:57 UTC; 3min 25s ago
     Docs: man:firewalld(1)
 Main PID: 3023 (firewalld)
    Tasks: 2
   Memory: 22.8M
   CGroup: /system.slice/firewalld.service
           └─3023 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

Stop firewalld:

$ sudo systemctl stop firewalld

As an alternative, you can disable the firewalld service, so that it will not apply rules to network packets:

$ sudo systemctl disable firewalld

Allow access to the Docker CLI without root privileges

If in the future you want to access the Docker CLI without using root privileges, you should create a docker user group (if it does not exist) and add the current user to this group with the certain rights:

$ sudo groupadd docker
$ sudo usermod -a -G docker $USER

After running these commands, you should re-login under the current user.

Step 2. Install ADCM

Offline ADCM installation includes the following steps:

  1. Get a special installation shell script from the Arenadata support team.

  2. Make a directory on the host, where ADCM should be deployed, and put the script into it.

  3. Run the script from the created directory, using the following command:

    $ sudo bash <script_name> master_adcm

    where <script_name> means the full script name with an extension (for example, pack.sh).

NOTE
  • In the product environment, it is recommended to use PostgreSQL as an external database instead of built-in SQLite. For more information, see Configure ADCM to use an external database.

  • Offline installation takes some time. Please wait until it is completed. The result should look like this:

    Loaded image: hub.arenadata.io/adcm/adcm:2.0
    e97f2afb04e568386b2755ef8b1d245eb2abfab77c2a402f736e0c1cd99e7b11
    adcm

Step 3. Start ADCM

ADCM is just a container operated by Docker. So you are able to use simple Docker commands to start and stop ADCM:

  • To start ADCM, use the following command.

    $ sudo docker start adcm
  • To stop ADCM, use the following command.

    $ sudo docker stop adcm
  • In order to provide the automatic start of the Docker container after unexpected errors, use the following command.

    $ sudo docker update --restart=on-failure adcm
NOTE
  • For more information about Docker restart policies, refer to the Docker documentation.

  • If you allowed your user to access the Docker CLI without root privileges, then you can omit the sudo keyword from the commands listed above.

Step 4. Check installation

Check the Docker container status

To make sure that the Docker container adcm is successfully deployed, run the following command.

$ sudo docker container ls

The example of the command execution result is listed below. Make sure that the STATUS value is equal to Up.

CONTAINER ID        IMAGE                               COMMAND             CREATED             STATUS              PORTS                    NAMES
74b5628146e5        hub.arenadata.io/adcm/adcm:2.0   "/etc/startup.sh"   4 days ago          Up 21 minutes       0.0.0.0:8000->8000/tcp   adcm

Check the 8000 port availability

After ADCM is installed and started, its web interface should become available on the 8000 port of the deployed container.

For Ubuntu 22.04, first install the packages required for executing the netstat command:

$ sudo apt-get install net-tools

You can check the 8000 port availability using these commands:

  • The netstat command — to display information about port listening.

    $ sudo netstat -ntpl | grep 8000

    The example of the command execution result:

    tcp6       0      0 :::8000                 :::*                    LISTEN                                             1514/docker-proxy-c
  • The curl command — to check the URL connection.

    $ curl http://localhost:8000

    The example of the command execution result:

    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <title>Arenadata Cluster Manager</title>
      <base href="/">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="icon" type="image/x-icon" href="assets/favicon.ico">
    <link rel="stylesheet" href="styles.10db6328264e0907c52f.css"></head>
    <body>
      <app-root></app-root>
    <script src="runtime-es2015.7eb406ed18bf0258cd35.js" type="module"></script><script src="runtime-es5.7eb406ed18bf0258cd35.js" nomodule defer></script><script src="polyfills-es5.2e224d70daec4412d3c2.js" nomodule defer></script><script src="polyfills-es2015.37e0553ac06970d6a5b5.js" type="module"></script><script src="main-es2015.39851da0ebf9ed6fec45.js" type="module"></script><script src="main-es5.39851da0ebf9ed6fec45.js" nomodule defer></script></body>
    </html>

Check the ADCM web-interface

To log in to ADCM, you should use the user with administrator rights that is created by default:

  • User: admin

  • Password: admin

Log in to ADCM
Log in to ADCM

Later you can change the password if necessary. To do this:

  1. Open the user profile in the left navigation menu.

  2. Enter the current password in the Current password field.

  3. Fill in the New password field.

  4. Confirm a new password in the Confirm password field.

  5. Click Save.

    Change the admin password
    Change the admin password

Set the ADCM URL

For successful communication between ADCM and product clusters deployed via ADCM, it is important to correctly define the external ADCM address. This address is used by cluster components for sending information about their state to ADCM. To specify the ADCM URL, use the environment variable DEFAULT_ADCM_URL when creating the ADCM container. If you did not specify that variable, you should manually install the URL in the ADCM web interface. To do this, follow the steps:

  1. Select the Settings item in the left navigation menu.

  2. Expand the Global Options node in the tree of configuration settings.

  3. Click the ADCM’s URL field value.

    The Settings page
    The Settings page
  4. In the window that opens, edit the ADCM’s URL field value and click Apply.

    Change the ADCM URL
    Change the ADCM URL
  5. Click Save to apply changes.

    Save the ADCM URL
    Save the ADCM URL

Step 5. Update ADCM

CAUTION
  • Before upgrade, it is strongly recommended to backup ADCM data. For more information, see Backup & Restore.

  • Downgrade of the ADCM version is not supported.

  • It is not recommended to update ADCM more than 5 minor versions ahead (see <minor> in the versioning format below).

If you need to upgrade the previously installed version of ADCM, do the following:

  1. Stop the adcm container.

    $ sudo docker stop adcm
  2. Remove the adcm container.

    $ sudo docker container rm adcm
  3. Download the Docker image that you need from the Arenadata Docker Registry.

    $ sudo docker pull hub.arenadata.io/adcm/adcm:<version>

    where <version> is a desired ADCM image version in one of the following formats:

    • <major>.<minor>.<patch> — if you need a specific ADCM patch. For example, 2.0.0.

    • <major>.<minor> — if you need the last patch within the selected ADCM version. For example, 2.0.

    IMPORTANT
    • latest was used for earlier versions of ADCM and is no longer supported starting from version 2.0.0.

    • Before ADCM 2.0.0, the following format was used for versioning: YYYY.MM.DD.HH.

  4. Create a new container based on the uploaded image.

    $ sudo docker create --name adcm -p 8000:8000 -v /opt/adcm:/adcm/data hub.arenadata.io/adcm/adcm:<version>
  5. Start the new adcm container.

    $ sudo docker start adcm
IMPORTANT
If you use ADCM with an external database, the container must be run with the appropriate environment variables.
Found a mistake? Seleсt text and press Ctrl+Enter to report it