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

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

Важно

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

Переход на ТестОпс с установки Allure Testops

Если вы переходите на ТестОпс с существующего инстанса 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 версии не ниже 14
  • Redis
  • nginx

Пакет box

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

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

Установка

Добавление репозиториев

Добавление публичных ключей третьих сторон

Этот шаг может потребоваться, если вы устанавливаете пакет box, т.к. его установка подразумевает также установку PostgreSQL, minio, Amazon Corretto.

Последовательно выполните следующие команды в терминале.

Для возможности установки Amazon Corretto

wget -O- https://apt.corretto.aws/corretto.key | sudo apt-key add -

sudo add-apt-repository 'deb https://apt.corretto.aws stable main'

Для возможности установки PostgreSQL 14

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Добавление публичного ключа qatools

curl -s https://pub.qatools.ru/qatools.gpg | gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/qatools.gpg --import

chmod 644 /etc/apt/trusted.gpg.d/qatools.gpg

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

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

  1. скопируйте все строки:
cat << EOF >> /etc/apt/sources.list.d/qatools.list
deb [trusted=yes] https://dl.qatools.ru/repository/debian stable main
EOF
  1. Запустите терминал
  2. Если вы не root, наберите sudo su и введите пароль для получения привилегий администратора, при необходимости.
  3. Вставьте скопированный текст в терминал и нажмите Enter.
  4. Проверьте, действительно ли нужный нам файл был обновлен.
cat /etc/apt/sources.list.d/qatools.list
  1. Скопируйте все следующие строки в текстовый редактор.
cat << EOF >> /etc/apt/auth.conf.d/qatools.conf
machine dl.qatools.ru login your_username password your_password
EOF
  1. Обновите скопированные строки следующим образом:

    • замените your_username на свое имя пользователя для реестра ТестОпс.
    • замените your_password на свой пароль для реестра ТестОпс.
  2. Скопируйте обновленные строки в терминал и нажмите Enter.

  3. Проверьте, действительно ли файл был обновлен.

    cat /etc/apt/auth.conf.d/qatools.conf
  4. Перезапустите теринал, для корректного применения выполненных настроек.

  5. выполните одну из следующих команд в терминале в зависимости от того, какой пакет вы устанавливаете.

    • Для установки всегда явно используйте ID релиза ТестОпс.
    • для box
        sudo apt update && apt install allure-testops-box=4.22.0
    • для min
        sudo apt update && apt install allure-testops-min=4.22.0
Важно

Не используйте apt upgrade для обновления релиза, так как такая команда может установить релиз-кандидат, который остановит ваши процессы, и вы не сможете отменить изменения, например, из-за несовместимости схем баз данных при наличии изменений в схеме БД.

Конфигурационные файлы

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

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

Для сервиса gateway

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

Для сервиса uaa

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

Для сервиса report

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

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

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

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

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

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

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

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

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

Важно

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

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

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

Allure Gateway

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

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

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

ALLURE_JWT_SECRET=N7zaHAQYQ4XtQTz4vGvqt7Tkyjuesxcp
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_SECURITY_USER_NAME=admin
ALLURE_SECURITY_USER_PASSWORD=admin # обязательно изменить
ALLURE_REGISTRATION_ENABLED=false # для производственной системы лучше выключить
ALLURE_REGISTRATION_AUTOAPPROVE=false # для производственной системы лучше выключить
ALLURE_REGISTRATION_DEFAULT_ROLE=ROLE_AUDITOR # для производственной системы лучше выставить так, чтобы лучше контролировать лицензии

# в примере используются настройки для 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=N7zaHAQYQ4XtQTz4vGvqt7Tkyjuesxcp

Настройки 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=CjAXjUav3eh3cmWk

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

Allure Report

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

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

JWT-секрет

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

ALLURE_JWT_SECRET=N7zaHAQYQ4XtQTz4vGvqt7Tkyjuesxcp

Настройки 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=GnNc9QQcLzZfhVNn

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

Настройки 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, а пароль - либо по умолчанию, либо тот, который вы задал в указанном файле.

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

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

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

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

Обновление релиза ТестОпс

Важно

Пожалуйста, никогда не используйте apt upgrade для обновления релиза ТестОпс. Эта команда может установить последние версии файлов, которые могут быть релиз-кандидатом или нестабильной версией, и это действие потенциально может привести к остановке рабочих процессов из-за несовместимости схем БД и вернуть предыдущй релиз не предоставится возможным.

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

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

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

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

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 ~/

Обновление

sudo apt update
sudo apt-get install allure-testops-box=4.22.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 -n 100 -u allure-uaa
journalctl -f -n 100 -u allure-report
journalctl -f -n 100 -u allure-gateway

где:

  • f - следить за журналом, т.е. все новые линии будут отображаться на экране
  • n 100 - количество записей в журнале, которые нужно показать
  • 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. Удалите конфигурации

Пакеты

sudo apt autoremove allure-testops-box

Эта команда удалит ТестОпс и все зависимости, установленные apt install.

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

rm -rf /opt/allure-testops

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

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

Установка 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

Подключение хранилища 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.