Install Allure TestOps via DEB packages
This article describes installation of Allure TestOps version 4.x. For the newer version 5.x, click here.
This section describes how to install Allure TestOps on Ubuntu using DEB packages.
Depending on the operating system's settings, you may encounter issues when pasting multi-line commands from this page into the terminal. To fix the behavior, we recommend running this command before you begin:
bind 'set enable-bracketed-paste on'
Preparation steps
Make sure you run Ubuntu 20.04 LTS or 22.04 LTS.
Note that Qameta does not officially support Allure TestOps on non-LTS versions.
To check the version of your operating system, run this in terminal:
lsb_release -a
Do not install Allure TestOps on a machine that is used for other purposes. Allure TestOps demands a lot of resources, so sharing resources with other software can cause serious performance issues.
Deploy external storage servers:
- two PostgreSQL databases,
- one MinIO or other S3-compatible storage server,
- one RabbitMQ message server,
- one Redis storage server.
Note that it is recommended to run PostgreSQL and S3-compatible storage on separate machines.
Get a license for Allure TestOps.
To receive the license key, contact us at [email protected] for a commercial license. Please indicate that you are planning to install Allure TestOps via DEB packages.
When you receive the license key, you will also get a username and a password for accessing Qameta's DEB repository.
Get details for configuring authentication.
The required details depend on which approach to user authentication you choose. There are two possible approaches.
Standard email-based authentication, implemented by Allure TestOps itself.
This requires a working SMTP account, e.g., a Gmail account. A new user will be able to register by entering their email address, to which Allure TestOps will send a confirmation email.
Authentication via an external identity provider.
The details required for this may vary depending on what type of identity provider you use. Usually, you will need to specify an external URL and a secret token generated by the identity provider.
See Configuration → Authentication for more details.
Installing dependencies
Amazon Corretto
Amazon Corretto version 17 is used as the JDK implementation for running Allure TestOps. To install it, run the following commands in a terminal:
wget -q -O- https://apt.corretto.aws/corretto.key | sudo gpg --dearmor --output /usr/share/keyrings/corretto.gpg
echo "deb [signed-by=/usr/share/keyrings/corretto.gpg] https://apt.corretto.aws stable main" | sudo tee /etc/apt/sources.list.d/corretto.list
sudo apt update
sudo apt install -y java-17-amazon-corretto-jdk
For more details, see the installation guide on the Amazon website.
HashiCorp Consul
HashiCorp Consul is used for service discovery and communication between components of Allure TestOps. To install it, run the following commands in a terminal:
wget -q -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor --output /usr/share/keyrings/hashicorp.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/hashicorp.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update
sudo apt install -y consul
For more details, see the installation guide on the Consul website.
PostgreSQL (optional)
While not recommended for high-load use cases, it is possible to run PostgreSQL on the same machine you will be running Allure TestOps on. To install it, run the following commands in a terminal:
wget -q -O- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor --output /usr/share/keyrings/pgdg.gpg
echo "deb [signed-by=/usr/share/keyrings/pgdg.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt update
sudo apt install -y postgresql-14
For more details, see the installation guide on the PostgreSQL website.
Installing Allure TestOps
Allure TestOps packages are distributed via a repository that requires authentication. If you have a trial or commercial license for Allure TestOps, you should have received the username and password in the same email where you got the license key. If you cannot find it, contact us at [email protected].
Once you have got the login and password, do the following.
Specify the credentials for accessing the Qameta repository.
Before executing the command, replace USERNAME and PASSWORD with the credentials provided to you by the Qameta sales team.
echo "machine dl.qameta.io login USERNAME password PASSWORD" | sudo tee /etc/apt/auth.conf.d/qameta.conf
Add the Qameta repository to your system.
Note that you must paste this command as a whole, without running its lines separately.
cat <<EOF | sudo tee /etc/apt/sources.list.d/qameta.list deb [trusted=yes] https://dl.qameta.io/artifactory/debian stable main deb [trusted=yes] https://dl.qameta.io/artifactory/debian focal main deb [trusted=yes] https://dl.qameta.io/artifactory/debian focal-pgdg main deb [trusted=yes] https://dl.qameta.io/artifactory/deb-local stable main EOF
Refresh the index of available packages.
sudo apt update
Select the version of Allure TestOps to install.
Note that you must paste this command as a whole, without running its lines separately. Before executing the command, replace
4.22.1
with the version you want to use.Check out the Release notes section for the list of available versions. In general, it is recommended to use the latest release.
cat <<EOF | sudo tee /etc/apt/preferences.d/qameta Package: allure-testops-* Pin: version 4.22.1 Pin-Priority: 1000 EOF
Install one of the two options of the Allure TestOps package.
sudo apt install -y allure-testops-min
This will only install Allure TestOps itself.
sudo apt install -y allure-testops-box
This will automatically install MinIO, Redis and RabbitMQ locally. The default configuration will assume that PostgreSQL was also installed locally during the Installing dependencies step.
If you are using a firewall, make sure that incoming traffic to the TCP port 8080 is allowed.
Here's how to do it if you are using ufw:
sudo ufw allow 8080/tcp
Editing configuration files
The configuration parameters are spread across three configuration files: allure-gateway.conf, allure-uaa.conf, allure-report.conf.
To change parameters in a file, open it in a text editor, modify the values you need and save it. After that, restart Allure TestOps to apply the changes.
You need to use superuser's privileges to modify the configuration files. One way to edit files with such privileges is to use the
sudo nano
command in a terminal. For example:sudo nano /opt/allure-testops/gateway/conf/allure-gateway.conf
By default, parameters in the configuration files are set to be compatible with the default parameters of external services (MinIO, Redis, RabbitMQ, PostgreSQL), assuming those are installed on the local machine.
If you have installed the “min” option of the package, you need to change the parameters related to the external services before you can use Allure TestOps. Please see the lists of the most important parameters below, or you can read more details on each parameter in the Configuration section.
If you have installed the “box” option of the package, Allure TestOps should be available at http://localhost:8080/ automatically. However, you still may want to edit some parameters to better suit your needs.
allure-gateway.conf
Full path: /opt/allure-testops/gateway/conf/allure-gateway.conf
Available parameters include:
Common parameters
ALLURE_ENDPOINT
— the URL which should be used to access the Allure TestOps web interface.To make Allure TestOps available via HTTPS, you need to configure a reverse proxy. See Network configuration for more details.
Connection to the Redis storage server
SPRING_REDIS_HOST
— server hostname.SPRING_REDIS_PORT
— server port.SPRING_REDIS_PASSWORD
— password for connecting to the storage.
allure-uaa.conf
Full path: /opt/allure-testops/uaa/conf/allure-uaa.conf:
Available parameters include:
Common parameters
ALLURE_ENDPOINT
— the URL which should be used to access the Allure TestOps web interface.
Admin user credentials
ALLURE_SECURITY_USER_NAME
— admin username.ALLURE_SECURITY_USER_PASSWORD
— admin password.
Connection to the PostgreSQL database for authentication data
SPRING_DATASOURCE_URL
— database location in the JDBC URL format.SPRING_DATASOURCE_USERNAME
— username for connecting to the database.SPRING_DATASOURCE_PASSWORD
— password for connecting to the database.
Identity provider configuration or SMTP configuration
See Configuration → Authentication for more details.
Below are some configuration examples for various identity providers.
# please remember, this is an example, which won't work for you,
# you need to update your config with real SMTP server data.
ALLURE_MAIL_HOST=smtp.gmail.com
ALLURE_MAIL_PORT=465
ALLURE_MAIL_USERNAME=username
ALLURE_MAIL_PASSWORD=password
[email protected]
ALLURE_MAIL_SMTP_AUTH=true
ALLURE_MAIL_SMTP_STARTTLS_ENABLE=true
ALLURE_MAIL_SMTP_STARTTLS_REQUIRED=true
ALLURE_MAIL_SMTP_SSL_ENABLE=true
ALLURE_MAIL_SMTP_SSL_TRUST=smtp.gmail.com
#Example of using LDAP
ALLURE_LOGIN_PRIMARY=ldap
ALLURE_LOGIN_LDAP_ENABLED='true'
ALLURE_LOGIN_LDAP_REFERRAL=follow
ALLURE_LOGIN_LDAP_URL=ldap://ldap.url.here:port
# ALLURE_LOGIN_LDAP_USERDNPATTERNS= do not use with ALLURE_LOGIN_LDAP_USERSEARCHFILTER
ALLURE_LOGIN_LDAP_USERSEARCHBASE="ou=People,dc=space"
ALLURE_LOGIN_LDAP_USERSEARCHFILTER="uid={0}"
ALLURE_LOGIN_LDAP_DEFAULTROLE=${LDAP_DEFAULT_ROLE}
ALLURE_LOGIN_LDAP_UIDATTRIBUTE=uid
ALLURE_LOGIN_LDAP_SYNCROLES='true'
# these are to be enabled if ALLURE_LOGIN_LDAP_SYNCROLES='true'
ALLURE_LOGIN_LDAP_GROUPSEARCHBASE="ou=group,dc=space"
ALLURE_LOGIN_LDAP_GROUPSEARCHFILTER="memberUid={1}"
ALLURE_LOGIN_LDAP_GROUPROLEATTRIBUTE=cn
ALLURE_LOGIN_LDAP_GROUPAUTHORITIES_ROLEUSERGROUPS=group_with_ato_users,every_user_is_user
ALLURE_LOGIN_LDAP_GROUPAUTHORITIES_ROLEADMINGROUPS=group_with_ato_admins,every_user_is_admin
# service account data to log-in to LDAP
ALLURE_LOGIN_LDAP_USERDN="cn=admin,dc=space"
ALLURE_LOGIN_LDAP_PASSWORD='ServiceAccountPasswordHere'
# additional parameters, can be disabled by default
#ALLURE_LOGIN_LDAP_LOWERCASEUSERNAMES=true
#ALLURE_LOGIN_LDAP_PASSWORDATTRIBUTE=userPassword
allure-report.conf
Full path: /opt/allure-testops/report/conf/allure-report.conf
Available parameters include:
Common parameters
ALLURE_ENDPOINT
— the URL which should be used to access the Allure TestOps web interface.
Connection to the PostgreSQL database for application data
SPRING_DATASOURCE_URL
— database location in the JDBC URL format.SPRING_DATASOURCE_USERNAME
— username for connecting to the database.SPRING_DATASOURCE_PASSWORD
— password for connecting to the database.
Connection to the RabbitMQ server
SPRING_RABBITMQ_HOST
— server hostname.SPRING_RABBITMQ_PORT
— server port.SPRING_RABBITMQ_USERNAME
— username for connecting to the message queue.SPRING_RABBITMQ_PASSWORD
— password for connecting to the message queue.
Connection to the S3-compatible storage server
ALLURE_BLOBSTORAGE_S3_ENDPOINT
— server URL.ALLURE_BLOBSTORAGE_S3_BUCKET
— S3 bucket name.ALLURE_BLOBSTORAGE_S3_REGION
— S3 region name.ALLURE_BLOBSTORAGE_S3_ACCESSKEY
— access key for connecting to the bucket.ALLURE_BLOBSTORAGE_S3_SECRETKEY
— secret key for connecting to the bucket.
Managing services status
Start services
To start Allure TestOps, open a terminal application and run the command:
sudo systemctl start allure-gateway allure-uaa allure-report
Stop services
To stop Allure TestOps, open a terminal application and run the command:
sudo systemctl stop allure-gateway allure-uaa allure-report
Restart services
To restart Allure TestOps, open a terminal application and run the command:
sudo systemctl restart allure-gateway allure-uaa allure-report
Upgrading
Before you begin, make sure to read the release notes for the Allure TestOps version you are upgrading to. The release notes may contain crucial information on how to adapt your configuration files or migrate your data to the new version of Allure TestOps. In case you are skipping one or more versions, read the release notes for the skipped versions, too.
Open a terminal application.
Update the parameter that specifies the package version to install.
Note that you must paste this command as a whole, without running its lines separately. Before executing the command, replace
4.22.1
with the version you are upgrading to.cat <<EOF | sudo tee /etc/apt/preferences.d/qameta Package: allure-testops-* Pin: version 4.22.1 Pin-Priority: 1000 EOF
Refresh the index of available packages.
sudo apt update
Reinstall the package option you are using.
sudo apt install -y allure-testops-min
sudo apt install -y allure-testops-box
If necessary, modify your configuration files according to the relevant release notes.
Restart Allure TestOps.
sudo systemctl restart allure-gateway allure-uaa allure-report
Uninstalling
To uninstall the Allure TestOps instance:
Open a terminal application.
Remove the Allure TestOps packages:
sudo apt autoremove allure-testops-*
Remove your configuration files:
sudo rm -rf /opt/allure-testops
Troubleshooting
If you run into any issues, please check our FAQ page.
Also, in case of any troubles, do not immediately bring Allure TestOps down and up. We need the log files of each component to understand what has happened.
If you encounter an issue not covered in the FAQ, feel free to create a support ticket using your corporate email address. Please include the following information in the ticket:
- Description of the problem you are experiencing.
- Versions of Allure TestOps and all extra components you are having problems with (allurectl, integration plugins, etc.).
- Logs from your system as attachments to the ticket (see the details below). Please only send us the logs described below and only as an attachment.
journalctl -f -n 100 -u allure-uaa
journalctl -f -n 100 -u allure-report
journalctl -f -n 100 -u allure-gateway
where:
- f - to follow the journal, i.e. all the new lines will be shown on the screen
- n 100 - the number of journal entries to show
- u name - name of a unit
To check the service status in consul
To show service status in consul, use the URLs below. Replace 127.0.0.1 with your actual consul IP address:
curl http://127.0.0.1:8500/v1/health/service/allure-ee-gateway
curl http://127.0.0.1:8500/v1/health/service/allure-ee-uaa
curl http://127.0.0.1:8500/v1/health/service/allure-ee-report
Getting logs
By default, all components write logs to stdout. You can get the logs using journalctl:
journalctl --no-tail -u allure-uaa > allure-uaa.log && \
journalctl --no-tail -u allure-report > allure-report.log && \
journalctl --no-tail -u allure-gateway > allure-gateway.log