Перейти к основному содержимому

Установка ТестОпс версии 4.x с помощью RPM-пакетов

Внимание

В разделе описана установка ТестОпс версии 4.x. Чтобы установить ТестОпс версии 5.x, воспользуйтесь инструкцией.

Установка ТестОпс с помощью RPM-пакетов

Если вы переходите на ТестОпс с существующего инстанса Allure TestOps, то воспользуйтесь этой инструкцией для изменения файлов конфигурации.

Учетные данные

Учетные данные (логин, пароль) предоставляются службой продаж при предоставлении ознакомительной или коммерческой лицензии.

Учетные данные могут быть использованы для установки как пакетами, так и с помощью docker compose или Kubernetes. Особенности каждого вида установки описаны в соответствующих разделах документации.

Типы пакетов

Мы предоставляем два типа пакетов:

  • Пакет min
  • Пакет box

Пакет min

Минимальный пакет содержит только исполняемые файлы ТестОпс

  1. Сервис uaa
  2. Сервис gateway
  3. Сервис report

Пакет Min - для вас, если у вас уже есть собственная инфраструктура со всеми необходимыми дополнительными сервисами, или вы планируете установить другие сервисы, необходимые для работы ТестОпс, отдельно:

  • Amazon Corretto JDK 17 — обязательно
  • Consul — обязательно
  • RabbitMQ — обязательно
  • S3 решение (например, min.io) — обязательно
  • PostgreSQL версии не ниже 15 — обязательно
  • Redis — обязательно
  • nginx (при необходимости)

Пакет box

Пакет box включает все дополнительные приложения/сервисы, необходимые для запуска и работы ТестОпс на отдельном сервере.

Все инструменты будут установлены, настроены и запущены с помощью пакета установки ТестОпс на одном сервере (виртуальной машине).

Установка ПО

Выполните последовательно команды для обновление менеджера пакетов yum и установленного ПО.

yum check-update
yum upgrade

Вспомогательные утилиты

Эти утилиты требуется обязательно установить до начала установки всего остального ПО.

yum install -y mlocate

Далее

yum install -y curl epel-release yum-utils

Amazon Corretto 17 JDK

ТестОпс — приложение, разработанное на языке программирования Java, для его запуска требуется установленная на сервере среда исполнения Java версии 17. Мы настоятельно рекомендуем использовать Amazon Corretto 17 JDK.

Следуйте инструкциям на сайте разработчика

Выжимка из инструкции разработчика:

rpm --import https://yum.corretto.aws/corretto.key
curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo
yum install -y java-17-amazon-corretto-devel

PostgreSQL 15

Для установки PostgreSQL 15 мы рекомендуем следовать официальной инструкции от Postgres, они будут всегда актуальны и проверены самим разработчиком СУБД.

  1. Выберите правильную версию ОС, на которой вы будете осуществлять установку.
  2. Выберите правильную архитектуру процессора.
  3. Скопируйте и выполниете последовательно команды, которые предлагает разработчик Postgres.

При использовании пакета min вам потребуется вручную создать базы данных.

Создание баз данных

Требуется подключиться к БД с учетной записью владельца (postgres) и создать пользователей и базы данных.

UAA

Войдите в БД пользователем postgrespsql

Выполните команды.

CREATE USER uaa WITH PASSWORD 'uaauaa';
CREATE DATABASE uaa TEMPLATE template0 ENCODING 'utf8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8';
\c uaa
GRANT ALL PRIVILEGES ON database uaa to uaa;
GRANT ALL PRIVILEGES ON SCHEMA public TO uaa;
\q
exit
report

Войдите в БД пользователем postgrespsql

Выполните команды.

CREATE USER report WITH PASSWORD 'reportreport';
CREATE DATABASE report TEMPLATE template0 ENCODING 'utf8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8';
\c report
GRANT ALL PRIVILEGES ON database report to report;
GRANT ALL PRIVILEGES ON SCHEMA public TO report;
\q
exit

Параметры созданных баз данных и пользователей потребуются на следующих шагах настройки сервисов ТестОпс.

Consul

yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo

далее,

yum -y install consul

Consul требуется запускать как сервис и могут понадобиться минимальные настройки, для того, чтобы сервис запустился и мог принимать соединения.

Настройки производятся в файле consul.hcl, который, как правило, находится по следующему пути: /etc/consul.d, если такого пути не существует, то вам понадобится свериться с документацией разработчика на сайте consul.io.

Содержимое файла consul.hcl достаточное для запуска приложения Consul.

data_dir = "/opt/consul"
client_addr = "127.0.0.1"
server = true
bind_addr = "0.0.0.0"
advertise_addr = "127.0.0.1"
bootstrap_expect=1

Для запуска Consul как сервис понадобится настроить соответствующий файл в systemd.

touch /etc/systemd/system/consul.service

В файл потребуется добавить следующие строки

[Unit]
Description=Consul
Documentation=https://www.consul.io/
Requires=network-online.target
After=network-online.target

[Service]
User=root
Group=root
ExecStart=/usr/bin/consul agent -config-dir=/etc/consul.d/
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

Затем потребуется перезапустить службу

systemctl daemon-reload

и запустить Consul как сервис

systemctl enable consul.service
systemctl start consul

RabbitMQ

Выполните последовательно команды, приведенные на сайте производителя ПО.

затем запустите сервер RabbitMQ.

chkconfig rabbitmq-server on

Добавление реестров qatools

Чтобы добавить реестр ТестОпс в свой менеджер пакетов, необходимо выполнить следующие действия:

  1. скопируйте все строки:
cat << EOF >> /etc/yum.repos.d/qatools.repo
[Qatools]
name=Qatools
baseurl=https://dl.qatools.ru/repository/rpm/
username=USERNAME
password=PASSWORD
enabled=1
gpgcheck=0
EOF
  1. Замените USERNAME и PASSWORD на учетные данные, полученные от отдела продаж
  2. Запустите терминал
  3. Если вы не root, наберите sudo su и введите пароль для получения привилегий администратора, при необходимости.
  4. Вставьте скопированный текст в терминал и нажмите Enter.
  5. Проверьте, действительно ли нужный нам файл был обновлен.
cat /etc/yum.repos.d/qatools.repo
  1. Выполните одну из следующих команд в терминале, в зависимости от выбранного пакета установки

    • box (ТестОпс со всеми дополнительными сервисами)
        yum install allure-testops-box-4.24.1-1
    • min (только сервисы ТестОпс)
        yum install allure-testops-min-4.24.1-1
    • Для установки всегда явно используйте ID релиза ТестОпс.

Пути к файлам конфигурации

Конфигурационные файлы сервисов ТестОпс находятся в /opt/allure-testops.

Отдельно каждый конфигурационный файл рассматривается ниже в этом руководстве.

Конфигурирование сервисов ТестОпс

Конфигурация осуществляется через набор переменных окружения, хранящихся в файле allure-<service>.conf, специфичном для каждого из сервисов ТестОпс.

Начальная установка ТестОпс содержит набор переменных окружения, достаточный для успешного ввода ТестОпс в эксплуатацию.

Все дополнительные настройки, необходимые для интеграции, описаны в дальнейших разделах этой самой статьи.

Конфигурирование ТестОпс

Информация о пользователе admin

ТестОпс требует создания и сохранения в системе учетной записи admin (admin - это имя пользователя по умолчанию). Это имя (admin) и пароль определяются в конфигурационном файле (allure-uaa.conf), пароль этого пользователя будет восстановлен до состояния, описанного в конфигурационном файле при перезапуске сервиса uaa, чтобы гарантировать, что вы не потеряете доступ к инстансу ТестОпс, это означает, что если вы отключите пользователя admin в пользовательском интерфейсе, удалите роли администратора и измените пароль, то при следующем запуске ТестОпс ПО снова создаст пользователя со всем набором доступных прав, с паролем, определенным в конфигурационном файле.

Вывод: этого пользователя нельзя отключить и удалить.

Важно

Пожалуйста, измените пароль администратора в конфигурации перед развертыванием.

Если вы не задаете начальный пароль администратора, то будет создан пользователь по умолчанию admin и сильный пароль администратора будет сгенерирован системой, а затем сгенерированный пароль будет отправлен в журналы сервиса uaa.

Каждый раз при перезапуске ТестОпс учетная запись admin восстанавливается в исходное состояние в соответствии с конфигурационным файлом (allure-uaa.conf).

Общие настройки

Обязательная настройка переменной ALLURE_ENDPOINT.

Переменная содержит адрес, который используют конечные пользователи, работающие с UI. Такой же адрес используется для интеграций.

Если по какой-то причине эта переменная отсутствует в конфигурационном файле, добавьте ее. Для правильной работы интеграцией и отправки сообщений для регистрации новых пользователей, эта переменная также должна включать используемый порт, если он отличается от 80 или 443.

ALLURE_ENDPOINT=http://update.to.real.IP.or.FQDN:8080

Не рекомендуется использование локальных доменов без указания домена первого уровня, т.е. строка ALLURE_ENDPOINT=http://testops:8080 не подходит для использования и рекомендуется использовать, например, ALLURE_ENDPOINT=http://testops.intranet:8080.

Переменная ALLURE_ENDPOINT прописывается в конфигурационных файлах всех сервисов и должна быть одинаковой в настройках всех сервисов.

Allure Gateway

Конфигурационный файл сервиса Gateway находится по адресу:

/opt/allure-testops/gateway/conf/allure-gateway.conf

Стандартное содержимое (после установки) выглядит следующим образом.

ALLURE_ENDPOINT=http://update-to-real-IP-or-FQDN:8080
ALLURE_JWT_SECRET=N7zaHAQYQ
SPRING_SESSION_STORE_TYPE=REDIS
SPRING_REDIS_HOST=localhost
SPRING_REDIS_PORT=6379
SPRING_REDIS_PASSWORD=""
SPRING_CLOUD_CONSUL_ENABLED=true
SPRING_CLOUD_CONSUL_HOST=localhost
SPRING_CLOUD_CONSUL_PORT=8500
Важно

Значение ALLURE_JWT_SECRET требуется обновить и скопировать в тот же параметр сервисов report и uaa.

Сервис UAA

Конфигурационный файл сервиса UAA находится следующему пути:

/opt/allure-testops/uaa/conf/allure-uaa.conf

ALLURE_ENDPOINT=http://update-to-real-IP-or-FQDN:8080
ALLURE_SECURITY_USER_NAME=admin
ALLURE_SECURITY_USER_PASSWORD=admin # обязательно изменить
ALLURE_REGISTRATION_ENABLED=false # для производственной системы лучше выключить
ALLURE_REGISTRATION_AUTOAPPROVE=false # для производственной системы лучше выключить
ALLURE_REGISTRATION_DEFAULT_ROLE=ROLE_GUEST # для производственной системы лучше выставить так, чтобы лучше контролировать лицензии

# в примере используются настройки для gmail
# эта группа параметров является обязательной начиная с релиза 4.18.0
SPRING_MAIL_HOST=smtp.gmail.com
SPRING_MAIL_PORT=465
SPRING_MAIL_USERNAME=username
SPRING_MAIL_PASSWORD=password
ALLURE_MAIL_FROM=[email protected]
SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH=true
SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE=true
SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_REQUIRED=true
SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_ENABLE=true
SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_TRUST=smtp.gmail.com

JWT секрет

Параметр является обязательным, и его значение должно совпадать со значением того же параметра из сервиса gateway.

ALLURE_JWT_SECRET=N7zaHAQYQ

Настройки Consul

Настройки Consul, используемые по умолчанию:

SPRING_CLOUD_CONSUL_HOST=localhost
SPRING_CLOUD_CONSUL_PORT=8500

Если в твоем окружении есть выделенный сервер Consul, вам нужно соответствующим образом обновить эти настройки.

Настройки PostgreSQL

Рекомендуемые по умолчанию настройки для подключения к базе данных

SPRING_DATASOURCE_URL="jdbc:postgresql://localhost:5432/uaa?assumeMinServerVersion=11&ApplicationName=uaa-service"
SPRING_DATASOURCE_USERNAME=uaa
SPRING_DATASOURCE_PASSWORD=uaauaa

Если у вас выделенный сервер баз данных (настоятельно рекомендуется для производственной системы), то вам нужно соответствующим образом обновить настройки.

Allure Report

Конфигурационный файл сервиса Report находится по адресу:

/opt/allure-testops/report/conf/allure-report.conf

JWT-секрет

Параметр является обязательным, и его значение должно совпадать со значением того же параметра из сервиса gateway.

ALLURE_JWT_SECRET=N7zaHAQYQ

Настройки Consul

Настройки Consul, используемые по умолчанию:

SPRING_CLOUD_CONSUL_HOST=localhost
SPRING_CLOUD_CONSUL_PORT=8500

Если в твоем окружении есть выделенный сервер Consul, вам нужно соответствующим образом обновить эти настройки.

Настройки PostgreSQL

Рекомендуемые по умолчанию настройки для подключения к базе данных

SPRING_DATASOURCE_URL="jdbc:postgresql://localhost:5432/report?assumeMinServerVersion=11&ApplicationName=report-service"
SPRING_DATASOURCE_USERNAME=report
SPRING_DATASOURCE_PASSWORD=reportreport

Если у вас выделенный сервер баз данных (настоятельно рекомендуется для производственной системы), то вам нужно соответствующим образом обновить настройки.

Настройки RabbitMQ

SPRING_RABBITMQ_HOST=localhost
SPRING_RABBITMQ_PORT=5672
SPRING_RABBITMQ_USERNAME=guest
SPRING_RABBITMQ_PASSWORD=guest

Настройка хранилища (S3)

Тип хранилища, используемый установкой по умолчанию, - это хранилище S3 с сервисом min.io под капотом, этот тип настройки рекомендуется по сравнению с хранилищем файловой системы, так как он позволяет более стабильно обрабатывать файлы.

Настройки, приведенные ниже, используются установкой по умолчанию.

ALLURE_BLOBSTORAGE_TYPE=S3
ALLURE_BLOBSTORAGE_S3_PATHSTYLEACCESS=true
ALLURE_BLOBSTORAGE_S3_ENDPOINT="http://localhost:9000"
ALLURE_BLOBSTORAGE_S3_BUCKET=testops
ALLURE_BLOBSTORAGE_S3_REGION=your-region-0
ALLURE_BLOBSTORAGE_S3_ACCESSKEY=M8P2RAAa73KCBNmXKcp9csX5u5SXUg7L
ALLURE_BLOBSTORAGE_S3_SECRETKEY=YPZNUd5eULXGTZN9c9dNj8M4vffCpYPE

Для производственной системы рекомендуется использовать Amazon AWS или локальное решение S3 (например, minio) с хранилищем на SSD-дисках.

Управление состоянием выполнения ТестОпс

После установки ТестОпс он будет поднят автоматически и включен как сервис.

Для управления состоянием приложений вам нужно использовать следующие команды:

Запуск сервисов ТестОпс

systemctl start allure-uaa
systemctl start allure-report
systemctl start allure-gateway

Перезапуск сервисы ТестОпс.

systemctl restart allure-uaa
systemctl restart allure-report
systemctl restart allure-gateway

Получение статуса выполнения сервисов ТестОпс

systemctl status allure-uaa
systemctl status allure-report
systemctl status allure-gateway

Остановка сервисов ТестОпс

systemctl stop allure-uaa
systemctl stop allure-report
systemctl stop allure-gateway

Подключение к ТестОпс UI

Allure Test UI по умолчанию доступен на порту #8080.

Поэтому вам нужно получить к нему доступ через URL

http://your_domain_or_ip:8080/

Первоначальный вход

Войдите в ТестОпс, используя имя пользователя (по умолчанию — admin) и пароль из конфигурации /opt/allure-testops/uaa/conf/allure-uaa.conf.

Имя пользователя - admin, а пароль - либо по умолчанию, либо тот, который вы задал в указанном файле.

Ввод лицензии для инстанса ТестОпс

Следующее, что вы увидите, будет модальное окно, в котором потребуется указать приобретенную лицензию.

После предоставления правильной лицензии вы сможете начать свою работу.

Перед обновлением

Это поведение будет изменено в будущем, но сейчас вам нужно сохранить файлы конфигурации для каждого сервиса и восстановить файлы конфигурации после обновления.

cp /opt/allure-testops/gateway/conf/allure-gateway.conf ~/
cp /opt/allure-testops/report/conf/allure-report.conf ~/
cp /opt/allure-testops/uaa/conf/allure-uaa.conf ~/

Обновление

Если вы установили пакет ТестОпс Box с релизом 4.21.0-1, и вы хотите обновить релиз до хот-фикса 4.22.1-1, вам нужно выполнить обновление следующим образом:

yum install allure-testops-box-4.24.1-1

После обновления

Нам нужно восстановить ранее сохраненные файлы конфигурации и перезапустить сервисы ТестОпс, чтобы применить сохраненную конфигурацию.

cp ~/allure-gateway.conf /opt/allure-testops/gateway/conf/allure-gateway.conf
cp ~/allure-report.conf /opt/allure-testops/report/conf/allure-report.conf
cp ~/allure-uaa.conf /opt/allure-testops/uaa/conf/allure-uaa.conf

systemctl restart allure-uaa && systemctl restart allure-report && systemctl restart allure-gateway

Решение проблем

По умолчанию все компоненты пишут логи в stdout, вы можете получить логи с помощью journalctl:

journalctl -f -u allure-uaa
journalctl -f -u allure-report
journalctl -f -u allure-gateway

где:

  • f - следить за журналом, т.е. все новые линии будут отображаться на экране
  • u имя - имя сервиса, логи которого вы хотите увидеть

Чтобы проверить состояние сервиса в Consul

Чтобы показать статус сервиса в consul, используй приведенные ниже URL-адреса, замените 127.0.0.1 на ваш реальный IP-адрес consul:

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

Удаление ТестОпс

  1. Удалите пакеты
  2. Удалите конфигурации

Пакеты

yum remove allure-testops-box

Удаление конфигураций

rm -rf /opt/allure-testops

Использование ТестОпс с обратным прокси

Если вы планируете использовать ТестОпс с http/https, то потребуется установить nginx и certbot.

Подключение хранилища S3

Настоятельно рекомендуется использовать внешнее хранилище для производственной системы. По умолчанию для пакета box ТестОпс использует min.io.

Чтобы использовать другие объектные хранилища, например AWS, вам нужно обновить следующие переменные окружения:

ALLURE_BLOBSTORAGE_TYPE=S3
ALLURE_BLOBSTORAGE_S3_PATHSTYLEACCESS=true
ALLURE_BLOBSTORAGE_S3_ENDPOINT="http://localhost:9000"
ALLURE_BLOBSTORAGE_S3_BUCKET=testops
ALLURE_BLOBSTORAGE_S3_REGION=region
ALLURE_BLOBSTORAGE_S3_ACCESSKEY=M8P2RAAa73KCBNmXKcp9csX5u5SXUg7L
ALLURE_BLOBSTORAGE_S3_SECRETKEY=YPZNUd5eULXGTZN9c9dNj8M4vffCpYPE

ACL для S3

Следующие политики доступа необходимы на стороне S3, чтобы ТестОпс корректно работал с файлами в случае использования AWS.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "S3assets",
"Effect": "Allow",
"Action": [
"s3:PutObjectAcl",
"s3:PutObject",
"s3:ListMultipartUploadParts",
"s3:ListBucketMultipartUploads",
"s3:ListBucket",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:GetBucketLocation",
"s3:GetBucketAcl",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::<allure_s3_bucket_name>/*",</allure_s3_bucket_name>
"arn:aws:s3:::<allure_s3_bucket_name>"]</allure_s3_bucket_name>
}
]
}

Google S3

Важно

Для Google S3 вам нужно использовать fine-granted access control и настройки для публичного доступа Subject to object ACLs, это необходимо для совместимости с AWS SDK, иначе файлы в S3 bucket не будут полностью доступны ТестОпс, и сервис report не сможет запуститься.

Значение параметра ALLURE_BLOB-STORAGE_S3_ENDPOINT для Google S3 должен быть https://storage.googleapis.com.

Установка nginx

sudo apt install nginx certbot

получить SSL-сертификат, где %%DOMAIN%% - имя твоего домена.

certbot certonly -d %%DOMAIN%%

Конфигурация nginx

Поместите конфиг nginx в файл /etc/nginx/sites-available/allure.conf

cat << EOF > /etc/nginx/sites-available/allure.conf
upstream allure {
server 127.0.0.1:8083 weight=1;
}

server {
listen 80;
server_name %%DOMAIN%%;
return 301 https://$host$request_uri;
}

server {
listen 0.0.0.0:443 ssl;
server_name %%DOMAIN%%;
ssl_certificate /etc/letsencrypt/live/%%DOMAIN%%/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/%%DOMAN%%/privkey.pem;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://allure;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
}
}
EOF

Включить сайт

ln -s /etc/nginx/sites-available/allure.conf /etc/nginx/sites-enabled/allure.conf

Запустите nginx

systemctl start nginx
systemctl enable nginx