Install Allure TestOps via RPM 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 CentOS or RedHat Enterprise Linux using RPM 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 one of the following operating systems:
- CentOS 8 or newer,
- RedHat Enterprise Linux 8 or newer.
To check the version of your operating system, run this in terminal:
source /etc/os-release; echo $PRETTY_NAME
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.
Also, you must not perform bulk software updates on this machine using
yum update
.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:
curl -1sLf https://yum.corretto.aws/corretto.repo | sudo tee /etc/yum.repos.d/corretto.repo
sudo yum install -y java-17-amazon-corretto-devel
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:
curl -1sLf https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo | sudo tee /etc/yum.repos.d/hashicorp.repo
sudo yum 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:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-$(arch)/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -y module disable postgresql
sudo yum install -y postgresql14-server
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14
For more details, see the installation guide on the PostgreSQL website.
RabbitMQ (optional)
While not recommended for high-load use cases, it is possible to run RabbitMQ on the same machine you will be running Allure TestOps on. To install it, follow the installation guide on the RabbitMQ website.
curl -1sLf 'https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/setup.rpm.sh' | sudo bash
sudo yum install -y socat logrotate initscripts erlang
sudo yum install -y https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.14/rabbitmq-server-3.9.14-1.el8.noarch.rpm
sudo chkconfig rabbitmq-server on
sudo /sbin/service rabbitmq-server start
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.
Add the Qameta repository to your system.
Note that you must paste this command as a whole, without running its lines separately. Before executing the command, replace “USERNAME” and “PASSWORD” with the credentials provided to you by the Qameta sales team.
cat <<EOF | sudo tee /etc/yum.repos.d/qameta.repo [Qameta] name=Qameta baseurl=https://dl.qameta.io/artifactory/rhel/ enabled=1 gpgcheck=0 username=USERNAME password=PASSWORD EOF
Install one of the two options of the Allure TestOps package.
Before executing the command, replace
4.22.1
with the version you want to use.sudo yum install -y allure-testops-min-4.22.1
This will only install Allure TestOps itself.
sudo yum install -y allure-testops-box-4.22.1
This will automatically install MinIO and Redis locally. The default configuration will assume that PostgreSQL was also installed locally during the Installing dependencies step.
Check out the Release notes section for the list of available versions. In general, it is recommended to use the latest release.
Make sure that incoming traffic to the TCP port 8080 is allowed.
This step may be done in different ways, depending on the firewall you use. Here's an example for the default CentOS setup:
sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload
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 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.
Refresh the index of available packages.
sudo yum check-update
Reinstall the package option you are using.
Before executing the command, replace
4.22.1
with the version you are upgrading to.sudo yum install -y allure-testops-min-4.22.1
sudo yum install -y allure-testops-box-4.22.1
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 yum remove 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