Установка ТестОпс версии 4.x с помощью RPM-пакетов
Внимание
В инструкции описана установка ТестОпс версии 4.x. Чтобы установить ТестОпс версии 5.x, см. Установка ТестОпс версии 5.x с помощью RPM-пакетов.
Переход на ТестОпс с установки Allure Testops
Если вы переходите на ТестОпс с существующего инстанса Allure TestOps, см. Переход на ТестОпс с установки Allure TestOps в Linux-пакетах.
Учетные данные
Учетные данные (логин, пароль) предоставляются отделом продаж при предоставлении ознакомительной или коммерческой лицензии.
Учетные данные могут быть использованы для установки как пакетами, так и с помощью docker compose или Kubernetes. Особенности каждого вида установки описаны в соответствующих инструкциях документации.
Типы пакетов
Мы предоставляем два типа пакетов:
- Пакет min
- Пакет box
Пакет min
Минимальный пакет содержит только исполняемые файлы ТестОпс
- Сервис uaa
- Сервис gateway
- Сервис report
Пакет Min - для вас, если у вас уже есть собственная инфраструктура со всеми необходимыми дополнительными сервисами, или вы планируете установить другие сервисы, необходимые для работы ТестОпс, отдельно:
- Amazon Corretto JDK 17 — обязательно
- Consul — обязательно
- RabbitMQ — обязательно
- S3 решение (например, min.io) — обязательно
- PostgreSQL версии не ниже 15 — обязательно
- Redis — обязательно
- nginx (при необходимости)
Пакет box
Пакет box включает все дополнительные приложения/сервисы, необходимые для запуска и работы ТестОпс на отдельном сервере.
Все инструменты будут установлены, настроены и запущены с помощью пакета установки ТестОпс на одном сервере (виртуальной машине).
Установка ПО
Выполните последовательно команды для обновление менеджера пакетов yum и установленного ПО.
shell
yum check-update
yum upgradeВспомогательные утилиты
Эти утилиты требуется обязательно установить до начала установки всего остального ПО.
bash
yum install -y mlocateДалее
bash
yum install -y curl epel-release yum-utilsAmazon Corretto 17 JDK
ТестОпс — приложение, разработанное на языке программирования Java, для его запуска требуется установленная на сервере среда исполнения Java версии 17. Мы настоятельно рекомендуем использовать Amazon Corretto 17 JDK. Чтобы его установить, см. Install Amazon Corretto 17 on RPM-Based Linux на сайте разработчика.
Краткая инструкция по установке:
shell
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-develPostgreSQL 15
Для установки PostgreSQL 15 мы рекомендуем следовать официальной инструкции от Postgres, она будет всегда актуальна и проверена самим разработчиком СУБД.
- Выберите правильную версию ОС, на которой вы будете осуществлять установку.
- Выберите правильную архитектуру процессора.
- Скопируйте и выполниете последовательно команды, которые предлагает разработчик Postgres.
При использовании пакета min вам потребуется вручную создать базы данных.
Создание баз данных
Требуется подключиться к БД с учетной записью владельца (postgres) и создать пользователей и базы данных.
UAA
Войдите в БД пользователем postgres — psql
Выполните команды.
sql
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
exitreport
Войдите в БД пользователем postgres — psql
Выполните команды.
sql
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
shell
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repoдалее,
shell
yum -y install consulConsul требуется запускать как сервис и могут понадобиться минимальные настройки, для того, чтобы сервис запустился и мог принимать соединения.
Настройки производятся в файле consul.hcl, который, как правило, находится по следующему пути: /etc/consul.d, если такого пути не существует, то вам понадобится свериться с документацией разработчика на сайте consul.io.
Содержимое файла consul.hcl достаточное для запуска приложения Consul.
shell
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.
shell
touch /etc/systemd/system/consul.serviceВ файл потребуется добавить следующие строки
shell
[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Затем потребуется перезапустить службу
shell
systemctl daemon-reloadи запустить Consul как сервис
shell
systemctl enable consul.service
systemctl start consulRabbitMQ
Выполните последовательно команды, приведенные на сайте производителя ПО.
затем запустите сервер RabbitMQ.
shell
chkconfig rabbitmq-server onДобавление реестров qatools
Чтобы добавить реестр ТестОпс в свой менеджер пакетов, необходимо выполнить следующие действия:
Скопируйте все строки:
shellcat << 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Замените USERNAME и PASSWORD на учетные данные, полученные от отдела продаж
Запустите терминал
Если вы не root, наберите
sudo suи введите пароль для получения привилегий администратора, при необходимости.Вставьте скопированный текст в терминал и нажмите Enter.
Проверьте, действительно ли нужный нам файл был обновлен.
shellcat /etc/yum.repos.d/qatools.repoВыполните одну из следующих команд в терминале, в зависимости от выбранного пакета установки
- box (ТестОпс со всеми дополнительными сервисами)
shellyum install allure-testops-box-4.24.1-1- min (только сервисы ТестОпс)
shellyum 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.
shell
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
Стандартное содержимое (после установки) выглядит следующим образом.
shell
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
shell
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=noreply@example.com
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.comJWT секрет
Параметр является обязательным, и его значение должно совпадать со значением того же параметра из сервиса gateway.
shell
ALLURE_JWT_SECRET=N7zaHAQYQНастройки Consul
Настройки Consul, используемые по умолчанию:
shell
SPRING_CLOUD_CONSUL_HOST=localhost
SPRING_CLOUD_CONSUL_PORT=8500Если в твоем окружении есть выделенный сервер Consul, вам нужно соответствующим образом обновить эти настройки.
Настройки PostgreSQL
Рекомендуемые по умолчанию настройки для подключения к базе данных
shell
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.
shell
ALLURE_JWT_SECRET=N7zaHAQYQНастройки Consul
Настройки Consul, используемые по умолчанию:
shell
SPRING_CLOUD_CONSUL_HOST=localhost
SPRING_CLOUD_CONSUL_PORT=8500Если в твоем окружении есть выделенный сервер Consul, вам нужно соответствующим образом обновить эти настройки.
Настройки PostgreSQL
Рекомендуемые по умолчанию настройки для подключения к базе данных
shell
SPRING_DATASOURCE_URL="jdbc:postgresql://localhost:5432/report?assumeMinServerVersion=11&ApplicationName=report-service"
SPRING_DATASOURCE_USERNAME=report
SPRING_DATASOURCE_PASSWORD=reportreportЕсли у вас выделенный сервер баз данных (настоятельно рекомендуется для производственной системы), то вам нужно соответствующим образом обновить настройки.
Настройки RabbitMQ
shell
SPRING_RABBITMQ_HOST=localhost
SPRING_RABBITMQ_PORT=5672
SPRING_RABBITMQ_USERNAME=guest
SPRING_RABBITMQ_PASSWORD=guestНастройка хранилища (S3)
Тип хранилища, используемый установкой по умолчанию, - это хранилище S3 с сервисом min.io под капотом, этот тип настройки рекомендуется по сравнению с хранилищем файловой системы, так как он позволяет более стабильно обрабатывать файлы.
Настройки, приведенные ниже, используются установкой по умолчанию.
shell
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-дисках.
Управление состоянием выполнения ТестОпс
После установки ТестОпс он будет поднят автоматически и включен как сервис.
Для управления состоянием приложений вам нужно использовать следующие команды:
Запуск сервисов ТестОпс
bash
systemctl start allure-uaa
systemctl start allure-report
systemctl start allure-gatewayПерезапуск сервисы ТестОпс.
bash
systemctl restart allure-uaa
systemctl restart allure-report
systemctl restart allure-gatewayПолучение статуса выполнения сервисов ТестОпс
bash
systemctl status allure-uaa
systemctl status allure-report
systemctl status allure-gatewayОстановка сервисов ТестОпс
bash
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, а пароль - либо по умолчанию, либо тот, который вы задал в указанном файле.
Ввод лицензии для инстанса ТестОпс
Следующее, что вы увидите, будет модальное окно, в котором потребуется указать приобретенную лицензию.
После предоставления правильной лицензии вы сможете начать свою работу.
Перед обновлением
Это поведение будет изменено в будущем, но сейчас вам нужно сохранить файлы конфигурации для каждого сервиса и восстановить файлы конфигурации после обновления.
shell
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, вам нужно выполнить обновление следующим образом:
bash
yum install allure-testops-box-4.24.1-1После обновления
Нам нужно восстановить ранее сохраненные файлы конфигурации и перезапустить сервисы ТестОпс, чтобы применить сохраненную конфигурацию.
shell
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:
bash
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:
bash
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Удаление ТестОпс
- Удалите пакеты
- Удалите конфигурации
Пакеты
bash
yum remove allure-testops-boxУдаление конфигураций
bash
rm -rf /opt/allure-testopsИспользование ТестОпс с обратным прокси
Если вы планируете использовать ТестОпс с http/https, то потребуется установить nginx и certbot.
Подключение хранилища S3
Настоятельно рекомендуется использовать внешнее хранилище для производственной системы. По умолчанию для пакета box ТестОпс использует min.io.
Чтобы использовать другие объектные хранилища, например AWS, вам нужно обновить следующие переменные окружения:
shell
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=YPZNUd5eULXGTZN9c9dNj8M4vffCpYPEACL для S3
Следующие политики доступа необходимы на стороне S3, чтобы ТестОпс корректно работал с файлами в случае использования AWS.
JSON
{
"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
bash
sudo apt install nginx certbotполучить SSL-сертификат, где %%DOMAIN%% - имя твоего домена.
bash
certbot certonly -d %%DOMAIN%%Конфигурация nginx
Поместите конфиг nginx в файл /etc/nginx/sites-available/allure.conf
bash
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Включить сайт
bash
ln -s /etc/nginx/sites-available/allure.conf /etc/nginx/sites-enabled/allure.confЗапустите nginx
bash
systemctl start nginx
systemctl enable nginx
