Установка ТестОпс версии 4.x с помощью RPM-пакетов
Внимание
В разделе описана установка ТестОпс версии 4.x. Чтобы установить ТестОпс версии 5.x, воспользуйтесь инструкцией.
Установка ТестОпс с помощью RPM-пакетов
Если вы переходите на ТестОпс с существующего инстанса Allure TestOps, то воспользуйтесь этой инструкцией для изменения файлов конфигурации.
Учетные данные
Учетные данные (логин, пароль) предоставляются службой продаж при предоставлении ознакомительной или коммерческой лицензии.
Учетные данные могут быть использованы для установки как пакетами, так и с помощью 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-utils
Amazon Corretto 17 JDK
ТестОпс — приложение, разработанное на языке программирования Java, для его запуска требуется установленная на сервере среда исполнения Java версии 17. Мы настоятельно рекомендуем использовать Amazon Corretto 17 JDK.
Следуйте инструкциям на сайте разработчика
Выжимка из инструкции разработчика:
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-devel
PostgreSQL 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
exit
report
Войдите в БД пользователем 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 consul
Consul требуется запускать как сервис и могут понадобиться минимальные настройки, для того, чтобы сервис запустился и мог принимать соединения.
Настройки производятся в файле 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 consul
RabbitMQ
Выполните последовательно команды, приведенные на сайте производителя ПО.
затем запустите сервер RabbitMQ.
shell
chkconfig rabbitmq-server on
Добавление реестров qatools
Чтобы добавить реестр ТестОпс в свой менеджер пакетов, необходимо выполнить следующие действия:
- скопируйте все строки:
shell
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
- Замените USERNAME и PASSWORD на учетные данные, полученные от отдела продаж
- Запустите терминал
- Если вы не root, наберите
sudo su
и введите пароль для получения привилегий администратора, при необходимости. - Вставьте скопированный текст в терминал и нажмите Enter.
- Проверьте, действительно ли нужный нам файл был обновлен.
shell
cat /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=[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
.
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=YPZNUd5eULXGTZN9c9dNj8M4vffCpYPE
ACL для 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