Installation

Online installation via a Docker Image

NOTE
  • It is recommended to configure PostgreSQL as an external database or to deploy an embedded database using ADCM Installer. For more information on configuring PostgreSQL, see the Configure ADCM to use an external database article.

  • To see the full list of images, refer to the ADCM repository on Docker Hub.

  • ADCM has some mandatory persistent information stored in the /adcm/data directory inside a container. This means that you have to map a volume to that directory and provide backups for that volume.

To install ADCM, perform the following steps:

  1. Pull a Docker image 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.

  2. Add a container based on that image:

    NOTE
    The command below creates a container with ADCM on the 8000 port and establishes a connection to an external database. All its data will be stored on the host machine in the /opt/adcm/ directory. The environment variables description is given in the table below.
    $ sudo docker create --name adcm -p 8000:8000 -v /opt/adcm:/adcm/data -e DB_HOST="<DATABASE_HOSTNAME_OR_IP_ADDRESS>" -e DB_PORT="<DATABASE_TCP_PORT>" -e DB_USER="<DATABASE_USERNAME>" -e DB_NAME="<DATABASE_NAME>" -e DB_PASS="<DATABASE_USER_PASSWORD>" -e DB_OPTIONS="<DATABASE_OPTIONS>" hub.arenadata.io/adcm/adcm:<version>

    If you want to run ADCM with SELinux enabled, a Docker container should be created with the :Z option in the data catalog parameter:

    $ sudo docker create --name adcm -p 8000:8000 -v /opt/adcm:/adcm/data:Z hub.arenadata.io/adcm/adcm:<version>

    Optionally, when you create a container, you can specify the environment variables listed below. Each variable is specified in the following format: -e <name>="<value>". For example:

    $ sudo docker create --name adcm -p 8000:8000 -v /opt/adcm:/adcm/data -e LOG_LEVEL="INFO" hub.arenadata.io/adcm/adcm:<version>
    NOTE
    Special environment variables, such as STATUS_LOG_LEVEL, ADCM_LOG_LEVEL, AUDIT_LOG_LEVEL, LDAP_LOG_LEVEL, BACKGROUND_TASKS_LOG_LEVEL, and TASK_RUNNER_LOG_LEVEL have higher priority than the LOG_LEVEL variable.
Environment variables
Name Description

DB_HOST

Name or IP address of the host where the database is deployed

DB_PORT

TCP port number that is used to connect to the database

DB_USER

Username that is used to connect to the database

DB_NAME

Database name

DB_PASS

Password that is used to connect to the database

DB_OPTIONS

Options for connecting to the database:

  • sslmode — flag that is used for establishing an SSL connection. Possible values:

    • disable — only try a non-SSL connection.

    • allow — first try a non-SSL connection. If that fails, try an SSL connection.

    • prefer (default) — first try an SSL connection. If that fails, try a non-SSL connection.

    • require — only try an SSL connection. If a root certificate authority (CA) file is present, verify the certificate in the same way as if verify-ca was specified.

    • verify-ca — only try an SSL connection, and verify that the server certificate is issued by a trusted CA.

    • verify-full — only try an SSL connection, and verify that the server certificate is issued by a trusted CA and that the requested server host name matches that in the certificate.

  • sslcert — specifies the file name of the client SSL certificate. This parameter is ignored if the connection is made without SSL.

  • sslkey — specifies the location for the secret key used for the client certificate. This parameter is ignored if the connection is made without SSL.

  • sslrootcert — specifies the name of a file containing SSL certificate authority certificate(s). If the file exists, the server certificate will be verified to be signed by one of these authorities. A special system value may be specified instead, in which case the system trusted CA roots will be loaded. The exact locations of these root certificates differ by SSL implementation and platform.

DEFAULT_ADCM_URL

URL of the host where the ADCM container is deployed. Use the following format: http://<IP>:8000/. If DEFAULT_ADCM_URL is not specified, you should set the URL manually in the ADCM’s URL field on the Settings page

LOG_LEVEL

Log level for all log types. Possible values:

  • DEBUG

  • INFO

  • WARNING

  • ERROR (default value)

  • CRITICAL

STATUS_LOG_LEVEL

Log level for status.log. Possible values:

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

ADCM_LOG_LEVEL

Log level for adcm.log and adcm_debug.log. Possible values:

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

AUDIT_LOG_LEVEL

Log level for audit.log. Possible values:

  • DEBUG

  • INFO (default value)

  • WARNING

  • ERROR

  • CRITICAL

LDAP_LOG_LEVEL

Log level for ldap.log. Possible values:

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

BACKGROUND_TASKS_LOG_LEVEL

Log level for cron_task.log. Possible values:

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

TASK_RUNNER_LOG_LEVEL

Log level for task_runner.err. Possible values:

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

MIGRATION_MODE

Flag that indicates whether migration mode (ability to migrate ADCM database from SQLite to PostgreSQL) is turned on. For more information, see ADCM migration. Possible values:

  • 0 — migration mode is off;

  • 1 — migration mode is on.

Offline installation (available in the Enterprise Edition)

If you use Enterprise Edition of the product, you can also try offline ADCM installation. It can be useful in situations without Internet access.

Offline ADCM installation includes the following steps:

  1. Get an archive with the sh.xz extension that contains 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 received archive into it.

  3. Unpack the archive into the created directory using any of the available methods.

    NOTE
    Running the command can take some time. Please wait until it is completed.
  4. Load the Docker image to the local storage using the received script:

    $ sudo bash <script_name> unpack_adcm

    where <script_name> is the full script name with the extension (for example, adcm_2.5.0.sh).

    The example of a successful command execution result:

    Loaded image: hub.arenadata.io/adcm/adcm:2.5.0
  5. Create a new container based on the downloaded image:

    $ sudo docker create --name adcm -p 8000:8000 -v /opt/adcm:/adcm/data -e DB_HOST="<DATABASE_HOSTNAME_OR_IP_ADDRESS>" -e DB_PORT="<DATABASE_TCP_PORT>" -e DB_USER="<DATABASE_USERNAME>" -e DB_NAME="<DATABASE_NAME>" -e DB_PASS="<DATABASE_USER_PASSWORD>" -e DB_OPTIONS="<DATABASE_OPTIONS>" hub.arenadata.io/adcm/adcm:<version>

Start and stop

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.

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, 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
Found a mistake? Seleсt text and press Ctrl+Enter to report it