Installation

Online installation via a Docker Image

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.

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

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

To install ADCM, you should run the following commands:

  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. The command below creates a container on the 8000 port with ADCM. All its data will be stored on the host machine in the /opt/adcm/ directory.

    $ sudo docker create --name adcm -p 8000:8000 -v /opt/adcm:/adcm/data 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

DEFAULT_ADCM_URL

A 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 URL manually in the ADCM’s URL field on the Settings page

LOG_LEVEL

A log level for all log types. Possible values:

  • DEBUG

  • INFO

  • WARNING

  • ERROR (default value)

  • CRITICAL

STATUS_LOG_LEVEL

A log level for status.log. Possible values:

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

ADCM_LOG_LEVEL

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

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

AUDIT_LOG_LEVEL

A log level for audit.log. Possible values:

  • DEBUG

  • INFO (default value)

  • WARNING

  • ERROR

  • CRITICAL

LDAP_LOG_LEVEL

A log level for ldap.log. Possible values:

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

BACKGROUND_TASKS_LOG_LEVEL

A log level for cron_task.log. Possible values:

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

TASK_RUNNER_LOG_LEVEL

A log level for task_runner.err. Possible values:

  • DEBUG

  • INFO

  • WARNING

  • ERROR

  • CRITICAL

DB_HOST

A name or IP address of the host where the external PostgreSQL database is deployed. For more information on DB_HOST, DB_PORT, DB_USER, DB_NAME, DB_PASS, DB_OPTIONS variables, see Configure ADCM to use an external database

DB_PORT

A TCP port number that is used to connect to PostgreSQL

DB_USER

A user name that is used to connect to PostgreSQL

DB_NAME

A name of the external PostgreSQL database

DB_PASS

A user password that is used to connect to PostgreSQL

DB_OPTIONS

Options for connecting to the external database. For more information, see Configure ADCM to use an external database

MIGRATION_MODE

A 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 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

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 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. You can check it using these commands:

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

    $ sudo netstat -ntpl | grep 8000

    The output data should look like this:

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

    $ curl http://localhost:8000

    The output data should look like this:

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