Установка ТестОпс версии 5.x с помощью RPM-пакетов
В разделе описывается, как установить и запустить ТестОпс версии 5.х на CentOS или RedHat Enterprise Linux с помощью RPM-пакетов.
Инструкция для версии 4.x перенесена в архив. Чтобы установить и запустить ТестОпс, пожалуйста, используйте только актуальную инструкцию.
В зависимости от настроек операционной системы вы можете столкнуться с проблемами при вставке многостр очных команд в терминал. Чтобы исправить ситуацию, выполните эту команду перед началом работы:
bind 'set enable-bracketed-paste on'
Миграция с ТестОпс версии 4.x
ТестОпс версии 5.х нельзя развернуть поверх версии 4.х. Для обновления необходима миграция данных в одну базу данных, а также переход на новую конфигурацию.
Перейти на ТестОпс версии 5.х можно только с версии 4.26.5. Обновление с более старых версий приведет к сбоям в системе и потере данных.
Чтобы обновить ТестОпс версии 4.26.5 до версии 5.x:
-
Создайте новый файл testops.conf для обновленного RPM-пакета на основе вашей конфигурации.
-
Остановите инстанс ТестОпс версии 4.х.
-
Объедините базы данных сервисов UAA и report.
Целевая база данных при объединении — база данных сервиса report.
-
Запустите развертывание с помощью RPM-пакета.
Для получения более подробной информации, пожалуйста, обратитесь к руководству по миграции.
Подготовительные шаги для установки ТестОпс версии 5.x «с нуля»
-
Убедитесь, что вы используете одну из операционных систем:
- CentOS 8+,
- RedHat Enterprise Linux 8+.
Чтобы проверить версию вашей операционной системы, выполните команду в терминале:
source /etc/os-release; echo $PRETTY_NAME
ВажноНе устанавливайте ТестОпс на сервер, который используется для других целей. ТестОпс требует много ресурсов, поэтому совместное использование ресурсов с другими программами может привести к серьезным проблемам с производительностью.
И не выполняйте массовое обновление программного обеспечения на этой машине с помощью
yum update
. -
Разверните дополнительные сервисы:
- PostgreSQL базу данных,
- MinIO или другой S3-совместимый сервер для хранения данных,
- RabbitMQ сервер сообщений,
- Redis сервер для хранения данных.
Рекомендуется запускать PostgreSQL и S3-совместимое хранилище на разных серверах.
-
Получите лицензию на ТестОпс.
Чтобы получить ключ для коммерческой лицензии, свяжитесь с нами по адресу [email protected]. В письме укажите, что планируете установить ТестОпс с помощью RPM-пакетов.
Вместе с лицензионным ключом вы получите имя пользователя и пароль для доступа к RPM-репозиторию ТестОпс.
-
Получите подробную информацию о настройке аутентификации внутри вашей организации.
Данные, необходимые для настройки, зависят от того, какой подход к аутентификации пользователя вы выберете. Возможные варианты:
-
Стандартная аутентификация с помощью имени пользователя и пароля, реализованная в ТестОпс.
Этот вариант использует SMTP-сервер для отправки приглашений новым пользователям и не требу ет использования дополнительных сервисов.
-
Аутентификация через внешнего провайдера идентификационных данных (IdP).
Детали, необходимые для этого, могут отличаться в зависимости от типа используемого провайдера идентификационных данных. Подробная информация о настройках находится в соответствующих разделах документации.
-
Установка зависимостей
Amazon Corretto
Amazon Corretto версии 21 используется в качестве реализации JDK для запуска ТестОпс. Чтобы установить его, выполните следующие команды в терминале:
wget -q -O- https://yum.corretto.aws/corretto.repo | sudo tee /etc/yum.repos.d/corretto.repo
sudo yum install -y java-21-amazon-corretto-devel
Более подробная информация доступна в инструкции по установке на сайте Amazon.
PostgreSQL
Хотя это не рекомендуется для высоконагруженных случаев, можно запустить PostgreSQL на той же машине, на которой будет работать ТестОпс. Чтобы установить его, выполните следующие команды в терминале:
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 postgresql15-server
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15
Более подробная информация доступна в инструкции по установке на сайте PostgreSQL.
Независимо от варианта развертывания сервера PostgreSQL, обязательно войдите на этот сервер и подготовьте базу данных для ТестОпс.
RabbitMQ
Чтобы установить RabbitMQ, выполните следующие команды в терминале:
wget -q -O- 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.13.2/rabbitmq-server-3.13.2-1.el8.noarch.rpm
sudo chkconfig rabbitmq-server on
sudo /sbin/service rabbitmq-server start
Более подробная информация доступна в инструкции по установке на сайте RabbitMQ.
MinIO
Вы можете использовать MinIO как объектное хранилище для ТестОпс, совместимое с S3. Чтобы установить MinIO, следуйте одной из инструкций по установке на официальном сайте:
- Deploy MinIO: Single-Node Single-Drive;
- Deploy MinIO: Single-Node Multi-Drive;
- Deploy MinIO: Multi-Node Multi-Drive.
Redis
Чтобы установить Redis, выполните следующие команды в терминале:
sudo yum install -y redis
Более подробная информация доступна в инструкции по установке на сайте Redis.
Установка ТестОпс
Пакеты ТестОпс распространяются через репозиторий, который требует аутентификации. Если у вас есть пробная или коммерческая лицензия на ТестОпс, вы должны были получить имя пользователя и пароль в том же письме, в котором вы получили лицензионный ключ. Если вы не можете найти их, свяжитесь с нами по адресу [email protected].
Получив логин и пароль, выполните следующие действия:
-
Добавьте репозиторий ТестОпс в систему.
Скопируйте и выполните эту команду целиком, а не ее строки по отдельности. Перед выполнением команды, замените параметры username и password на учетные данные, которые вам прислали при покупке лицензии ТестОпс.
cat <<EOF | sudo tee /etc/yum.repos.d/qatools.repo
[Qatools]
name=Qatools
baseurl=https://dl.qatools.ru/repository/rpm/
enabled=1
gpgcheck=0
username=USERNAME
password=PASSWORD
EOF -
Установите пакет ТестОпс.
Перед выполнением команды замените
5.7.0
на версию ТестОпс, которую вы хотите использовать. Список доступных версий указан в разделе Информация о релизах. Мы рекомендуем использовать только последнюю доступную версию, так как она содержит новые возможности и улучшения в ТестОпс, а также исправления ошибок.sudo yum install -y testops-5.7.0
-
Если вы используете межсетевой экран, у бедитесь, что входящий трафик на TCP-порт 8080 разрешен.
Этот шаг может быть выполнен разными способами, в зависимости от используемого межсетевого экрана. Вот пример для стандартной настройки CentOS:
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
Изменение файлов конфигурации
Параметры конфигурации задаются в файле конфигурации /opt/testops/conf/testops.conf.
Чтобы изменить параметры, откройте файл в текстовом редакторе, измените нужные значения и сохраните его. После этого перезапустите ТестОпс, чтобы применить изменения.
Для изменения файла конфигурации необходимо использовать права суперпользователя. Один из способов изменить его с такими правами - выполнить команду sudo nano
в терминале:
sudo nano /opt/testops/conf/testops.conf
Для стандартной настройки выполните следующее:
- настройте URL-адрес ТестОпс,
- добавьте ключ шифрования для конфиденциальных данных,
- добавьте адрес электронной почты первого администратора,
- настройте аутентификацию,
- настройте сервисы хранения данных.
Настройка URL-адреса ТестОпс
В параметре ALLURE_ENDPOINT
укажите URL, который должен использоваться для доступа к веб-интерфейсу ТестОпс.
ALLURE_ENDPOINT=https://testops.example.com/
Чтобы ТестОпс был доступен через HTTPS, необходимо настроить обратный прокси-сервер.
Чтобы интеграция ТестОпс с Jira работала корректно, необходимо использовать HTTPS и включить передачу безопасных файлов cookie:
ALLURE_SECURE=true
Настройка ключа шифрования для конфиденциальных данных
В качестве меры безопасности ТестОпс шифрует важные значения в своей базе данных с помощью алгоритма AES256. Таким образом, если злоумышленник получит доступ к базе данных PostgreSQL, но не к файлу конфигурации, это не повлияет на учетные данные других служб, используемых при развертывании.
Для AES256 требуется ключ шифрования. Чтобы установить ключ шифрования, измените значение параметра ALLURE_CRYPTO_PASSWORD
:
ALLURE_CRYPTO_PASSWORD=ogheRiy7ooCh6Oocei6OdaD1iequooNa
Храните ключ шифрования в надежном месте.
Если значение параметра ALLURE_CRYPTO_PASSWORD
будет утеряно или изменено после первоначального развертывания, все ранее настроенные интеграции перестанут работать. В этом случае вам нужно будет зайти в настройки каждого проекта и заново ввести правильные учетные данные.
Настройка почты для первого администратора
Начиная с версии 5.4.0 необходимо настроить учетные данные SMTP во время установки. Начиная с версии 5.6.0, первый запуск ТестОпс невозможен без использования настроенного SMTP-сервера.
ТестОпс будет использовать учетные данные SMTP для отправки пригласительного письма первому администратору независимо от выбранного основного метода аутентификации. Адрес электронной почты администратора должен быть указан в параметре ALLURE_MAIL_ROOT
.
Ниже приведен пример параметров для учетной записи Gmail. Обратите внимание, что Google требует генерировать специальные пароли приложений для SMTP при включенной двухфакторной аутентификации. Другие почтовые службы, например Яндекс Почта, могут предъявлять аналогичные требования.
SPRING_MAIL_HOST=smtp.gmail.com
SPRING_MAIL_PORT=465
SPRING_MAIL_USERNAME=[email protected]
SPRING_MAIL_PASSWORD=Ohku6Zo9gee5dfkhkaen0
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
#...
ALLURE_MAIL_ROOT=[email protected]
Настройка аутентификации
Необходимый шаг при развертывании ТестОпс - настройка того, как пользователи (кроме первого администратора) будут регистрироваться и входить в систему.
Ниже приведены примеры конфигурации для различных провайдеров идентификационных данных.
- Аутентификация с помощью имени пользователя и пароля
- LDAP
- OpenID
Этот вариант аутентификации требует включенного SMTP. Дополнительная настройка не требуется.
# 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
Чтобы использовать OpenID IdP, вам нужно добавить значения в строки, указанные ниже, в соответствии с настройками ТестОпс и провайдера идентификационных данных.
# OpenId settings
# The text ID for the SSO provider. Will be used in URLs and displayed on the login buttons.
# Don't use whitespaces and special characters
# You can use array of different providers using different oauth2:
# SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_<PROVIDER_NAME>_... + SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_<PROVIDER_NAME>_...
########################################################################################
ALLURE_LOGIN_PRIMARY=openid
ALLURE_LOGIN_OPENID_DEFAULTROLE=ROLE_GUEST
SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OPENID_CLIENTNAME=openid
SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OPENID_CLIENTID=<as defined in your IdP>
SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OPENID_CLIENTSECRET=<as defined in your IdP>
SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OPENID_REDIRECTURI=http://<your-testops-domain>/login/oauth2/code/openid
SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OPENID_SCOPE=openid,email,profile
SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OPENID_AUTHORIZATIONGRANTTYPE=authorization_code
SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OPENID_AUTHORIZATIONURI=http://<open_id_provider_url>/somepath/auth
SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OPENID_USERNAMEATTRIBUTE=preferred_username
SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OPENID_JWKSETURI=http://<open_id_provider_url>/somepath/keys
SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OPENID_TOKENURI=http://<open_id_provider_url>/somepath/token
Настройка сервисов хранения данных
Чтобы подключиться к сервисам хранения данных, которые используются в ТестОпс, определите параметры для:
-
подключения к серверу хранения данных Redis:
SPRING_DATA_REDIS_HOST
— имя хоста сервера;SPRING_DATA_REDIS_PORT
— порт сервера;SPRING_DATA_REDIS_PASSWORD
— пароль для подключения к хранилищу.
-
подключения к базе данных PostgreSQL:
SPRING_DATASOURCE_URL
— локация базы данных в формате JDBC URL;SPRING_DATASOURCE_USERNAME
— имя пользователя для подключения к базе данных;SPRING_DATASOURCE_PASSWORD
— пароль для подключения к базе данных.
-
подключения к серверу RabbitMQ:
SPRING_RABBITMQ_HOST
— имя хоста сервера;SPRING_RABBITMQ_PORT
— порт сервера;SPRING_RABBITMQ_USERNAME
— имя пользователя для подключения к очереди сообщений;SPRING_RABBITMQ_PASSWORD
— пароль для подключения к очереди сообщений.
-
подключения к серверу хранения данных, совместимому с S3:
ALLURE_BLOBSTORAGE_S3_ENDPOINT
— URL-адрес сервера;ALLURE_BLOBSTORAGE_S3_BUCKET
— название бакета S3;ALLURE_BLOBSTORAGE_S3_REGION
— название региона S3;ALLURE_BLOBSTORAGE_S3_ACCESSKEY
— ключ доступа для подключения к бакету;ALLURE_BLOBSTORAGE_S3_SECRETKEY
— секретный ключ для подключения к бакету.
Некоторые дополнительные параметры могут быть изменены для тонкой настройки производительности или поддержки нестандартных конфигураций сервисов хранения. Проверьте комментарии в файле testops.conf и при необходимости проконсультируйтесь со службой технической поддержки ТестОпс.