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:
-
A maintained version of the Ubuntu 22.04/CentOS 7/RHEL 7/Alt Linux SP 8/Astra Linux SE 1.7 Orel/RED OS 7.3.2 operating system. Archived versions are not supported or tested.
-
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.
IMPORTANTThe 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.
-
Also before starting the installation, you need to edit the /etc/sudoers file so that the user who deploys ADCM will have the necessary rights afterwards. To do this, run the command:
$ sudo vi /etc/sudoers
In this file you need to remove the #
character at the beginning of the line WHEEL_USERS ALL=(ALL) ALL
. To save this change and return to the terminal, press Esc
, then type :wq
, or :wq!
.
Install Docker
CAUTION
Do not install Docker from the official Docker site. Instead of it, use the official repositories of your Linux distribution. The repositories provided by operating system developers tend to be more stable and secure. |
Depending on the operating system and package manager you use, the installation sequence includes the following steps.
-
Using
root
privileges, update all packages that are currently installed in your system:$ sudo yum update -y
-
Install the packages required for Docker installation and using:
$ sudo yum install -y yum-utils docker device-mapper-persistent-data lvm2
-
Start Docker:
$ sudo systemctl start docker
-
Enable Docker as a system service:
$ sudo systemctl enable docker
-
Using
root
privileges, update all packages that are currently installed in your system:$ sudo apt-get update $ sudo apt-get dist-upgrade
-
Install the packages required for Docker installation and using:
$ sudo apt-get install docker-engine
-
Start Docker:
$ sudo systemctl start docker
-
Enable Docker as a system service:
$ sudo systemctl enable docker
Disable SELinux (optionally)
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. You can use this command:
$ 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
NOTE
|
To install ADCM, you should run the following commands:
-
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 version2.0.0
. -
Before ADCM 2.0.0, the following format was used for versioning:
YYYY.MM.DD.HH
.
-
-
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 hub.arenadata.io/adcm/adcm:<version> -e LOG_LEVEL="INFO"
Name | Description |
---|---|
DEFAULT_ADCM_URL |
A URL of the host where the ADCM container is deployed. Use the following format: |
LOG_LEVEL |
A log level. Possible values:
|
DB_HOST |
A name or IP address of the host where the external PostgreSQL database is deployed. For more information on |
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:
|
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
|
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 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
Later you can change the password if necessary. To do this:
-
Open the user profile in the left navigation menu.
-
Enter the current password in the Current password field.
-
Fill in the New password field.
-
Confirm a new password in the Confirm password field.
-
Click Save.
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:
-
Select the Settings item in the left navigation menu.
-
Expand the Global Options node in the tree of configuration settings.
-
Click the ADCM’s URL field value.
The Settings page -
In the window that opens, edit the ADCM’s URL field value and click Apply.
Change the ADCM URL -
Click Save to apply changes.
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. |
If you need to upgrade the previously installed version of ADCM, do the following:
-
Stop the
adcm
container.$ sudo docker stop adcm
-
Remove the
adcm
container.$ sudo docker container rm adcm
-
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 version2.0.0
. -
Before ADCM 2.0.0, the following format was used for versioning:
YYYY.MM.DD.HH
.
-
-
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>
-
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.
|