Установка ТестОпс версии 5.x в Docker Compose
Внимание
В разделе описывается, как установить и запустить ТестОпс версии 5.х в Docker Compose.
Инструкция для версии 4.x перенесена в архив. Чтобы установить и запустить ТестОпс, пожалуйста, используйте только актуальную инструкцию.
Установка с помощью Docker Compose - самый простой вариант установки ТестОпс, но подходит только для небольших команд с относительно небольшой нагрузкой (не более 3 000 результатов автотестов за запуск или не более 30 000 — в сутки). Если нагрузка возрастает, стабильность работы в Docker Compose будет ниже, чем при использовании Kubernetes или при установке c помощью пакетов Linux.
Миграция с ТестОпс версии 4.x
Внимание
ТестОпс версии 5.х нельзя развернуть поверх версии 4.х. Для обновления необходима миграция данных в одну базу данных, а также переход на новую конфигурацию.
Перейти на ТестОпс версии 5.х можно только с версии 4.26.5. Обновление с более старых версий приведет к сбоям в системе и потере данных.
Чтобы обновить ТестОпс версии 4.26.5 до версии 5.x, пожалуйста, обратитесь к руководству по миграции.
Подготовительные шаги для установки ТестОпс версии 5.x «с нуля»
Установите Docker (руководство по установке на сайте Docker).
Установите плагин Docker Compose V2 (руководство по установке на сайте Docker).
Разверните дополнительные сервисы, необходимые для запуска ТестОпс:
- сервер PostgreSQL версии 15 или выше (см. инструкцию по созданию базы данных);
- хранилище, совместимое с S3, такое как Amazon S3, Google Cloud Storage, MinIO или другое решение;
- службу очереди сообщений RabbitMQ;
- службу Redis.
Чтобы повысить производительность сервисов и облегчить их обслуживание, рекомендуем развертывать сервисы отдельно, т. е. не на той же виртуальной машине или сервере, где будет устанавливаться инстанс ТестОпс.
Примечание
Установка без выделенных внешних сервисов тоже возможна (например, в демоверсии ТестОпс), однако такой вариант предназначен только для оценочных целей и официально не поддерживается. Обслуживание и обновление подобной конфигурации могут привести к значительному времени простоя или потере данных. Мы не сможем помочь в решении проблем и восстановлении сервиса.
Получите лицензию для ТестОпс:
- Пробную лицензию можно получить, заполнив форму запроса на нашем сайте.
- Коммерческую лицензию можно приобрести через отдел продаж.
Получите подробную информацию о настройке аутентификации внутри вашей организации.
Данные, необходимые для настройки, зависят от того, какой подход к аутентификации пользователя вы выберете. Возможные варианты:
Стандартная аутентификация с помощью имени пользователя и пароля, реализованная в ТестОпс.
Этот вариант использует SMTP-сервер для отправки приглашений новым пользователям и не требует использования дополнительных сервисов.
Аутентификация через внешнего провайдера идентификационных данных (IdP).
Детали, необходимые для этого, могут отличаться в зависимости от типа используемого провайдера идентификационных данных. Подробная информация о настройках находится в соответствующих разделах документации.
Загрузка и изменение файлов конфигурации
Скачайте архив конфигурационных файлов Docker Compose в формате ZIP по ссылке.
Извлеките файлы из архива в домашнюю директорию пользователя на виртуальной машине или сервере, где планируется разворачивать ТестОпс.
Перейдите в директорию распакованного архива.
В зависимости от выбранного метода аутентификации перейдите в соответствующую директорию:
testops
— для классической аутентификации на основе имени пользователя и пароля;testops-ldap
— для аутентификации через LDAP-сервер;testops-saml
— для аутентификации через провайдера SAML2-идентификации (Keycloak, GitLab, Azure AD, Okta);testops-openid
— для аутентификации через OpenID Connect (Keycloak, GitLab, Azure AD, Okta).
Для выбранной конфигурации переименуйте файл
env-example
в.env
. Итоговый файл должен иметь точку в начале имени файла.Примечание
Директория
testops-demo
содержит демоверсию ТестОпс, которая не подходит для производственной среды. Эта конфигурация может быть использована только для ознакомления с системой.Переименуйте файл env-example выбранной конфигурации в .env.
Для запуска ТестОпс вам потребуются два файла:
- docker-compose.yml (не редактируется) — определяет архитектуру развертывания в Docker Compose;
- .env (редактируется в соответствии с вашими потребностями) — хранит переменные окружения, которые будет использовать Docker Compose при запуске развертывания.
Содержимое файлов зависит от типа аутентификации, который вы выбрали, но сам процесс установки остается неизменным.
Переместите файлы .env и docker-compose.yml в директорию, где вы планируете хранить настройки для инстанса ТестОпс версии 5.x.
Откройте файл .env в текстовом редакторе. Для типичной настройки выполните следующие действия:
Выбор версии ТестОпс
В параметре RELEASE_TO_DEPLOY
укажите версию ТестОпс, которую вы хотите использовать, например:
sh
RELEASE_TO_DEPLOY=5.10.3
Шаги по установке актуальны для любой версии, начиная с ТестОпс 5.4.0. Мы рекомендуем использовать только последнюю доступную версию, так как она содержит новые возможности и улучшения в ТестОпс, а также исправления ошибок. Чтобы получить список доступных версий, ознакомьтесь с разделом Информация о релизах.
Реестр образов и репозиторий
Чтобы загрузить образ TecтОпс, укажите реестр образов и репозиторий, из которого будет загружен образ:
yaml
IMAGES_REGISTRY=reg.qatools.ru
IMAGES_REPO=testops
Настройка URL-адреса ТестОпс
Укажите URL-адрес установки, определив три параметра:
TESTOPS_INSTANCE_URL
— URL- или IP-адрес, который пользователи и интеграции, например CI-серверы, будут использовать для доступа к ТестОпс;TESTOPS_INSTANCE_PORT
— порт, который пользователи будут использовать для доступа к ТестОпс;TESTOPS_PROTO
— имя протокола (HTTP или HTTPS), который будет использоваться для работы ТестОпс.
В приведенном ниже примере инстанс ТестОпс доступен по адресу “http://testops.example.com/” (используется порт 80 — стандартный порт для HTTP). Важно, чтобы параметры совпадали с фактическим URL-адресом, иначе ТестОпс будет передавать неверные ссылки внешним инструментам, таким как серверы CI.
sh
TESTOPS_INSTANCE_URL=testops.example.com
TESTOPS_INSTANCE_PORT=80
TESTOPS_PROTO=http
Примечание
Чтобы открыть доступ к ТестОпс через HTTPS, необходимо настроить обратный прокси. Подробнее см. в разделе Сеть.
Если вы планируете интеграцию ТестОпс с Jira, используйте HTTPS и включите защищенные cookie, чтобы интеграция работала правильно. Подробнее см. в разделах Интеграция с Jira Data Center (Jira Server) и Интеграция с Jira Software Cloud.
sh
TESTOPS_SECURE_COOKIE=true
Настройка параметров безопасности
Ключ шифрования
В качестве меры безопасности ТестОпс шифрует важные значения в базе данных с помощью алгоритма AES-256. Таким образом, если злоумышленник получит доступ к базе данных PostgreSQL, но не к файлу конфигурации, он не получит учетные данные сторонних сервисов, используемых вашим инстансом.
Чтобы установить ключ шифрования, придумайте парольную фразу и укажите ее в качестве значения параметра TESTOPS_CRYPTO_PASSWORD
. Мы рекомендуем сохранить парольную фразу в безопасном месте, чтобы ее можно было восстановить при необходимости.
ini
TESTOPS_CRYPTO_PASSWORD=MolehillQuiverLatterSturdily
Важно
Если вы забудете значение параметра TESTOPS_CRYPTO_PASSWORD
или измените его после начального развертывания, все текущие интеграции перестанут работать. В таком случае вам нужно будет зайти в настройки каждого проекта и заново ввести учетные данные для каждой интеграции.
Секретный ключ JWT
ТестОпс использует открытый стандарт JSON Web Token для аутентификации запросов. В рамках этого стандарта вам нужно создать секретный ключ, который будет использоваться для подписи токенов.
Чтобы установить ключ, укажите его в качестве значения параметра TESTOPS_JWT_SECRET
. Рекомендованная длина ключа — от 8 до 16 символов. Чем длиннее ключ, тем больше ресурсов ЦПУ понадобится для вычисления подписи.
Вы можете изменить секретный ключ в любое время, это не повлияет на работу пользователей.
ini
TESTOPS_JWT_SECRET=123456789ABCDEF
Настройка почты для первого администратора
ТестОпс использует учетные данные SMTP для отправки пригласительного письма первому администратору независимо от выбранного основного метода аутентификации.
Важно
Начиная с версии 5.4.0, эти настройки обязательны при развертывании нового инстанса ТестОпс. Начиная с версии 5.6.0, первый запуск ТестОпс невозможен без использования настроенного SMTP-сервера.
Чтобы настроить SMTP:
В параметре
FIRST_ADMIN_EMAIL
укажите адрес электронной почты первого администратора.Пример:
shFIRST_ADMIN_EMAIL=[email protected]
Важно
Если вы планируете пользоваться внешним провайдером идентификационных данных, первый администратор может не принимать приглашение по электронной почте. Учетные данные администратора уже будут управляться на стороне провайдера.
Однако вам все равно необходимо настроить SMTP в качестве резервного варианта. Без SMTP, если вы потеряете доступ к внешнему провайдеру идентификационных данных, войти в инстанс будет невозможно, так как локальный администратор будет недоступен.
Укажите учетные данные SMTP согласно инструкции.
Настройка аутентификации
Необходимый шаг при развертывании ТестОпс - настройка того, как пользователи (кроме первого администратора) будут регистрироваться и входить в систему.
Ниже приведены примеры конфигурации для различных поставщиков идентификационных данных.
Если используется встроенная аутентификация, администраторы пригласят пользователей в систему через электронную почту. Когда пользователи создадут аккаунты, они будут входить в систему с помощью имени пользователя и пароля.
Настройка сервисов хранения данных
Чтобы подключиться к сервисам хранения данных, которые используются в ТестОпс, определите параметры для:
подключения к серверу Redis:
REDIS_HOST
— имя хоста сервера;REDIS_PORT
— порт сервера;REDIS_PASS
— пароль для подключения к хранилищу.
подключения к базе данных PostgreSQL:
TESTOPS_DB_HOST
— имя хоста сервера базы данных;TESTOPS_DB_PORT
— порт сервера базы данных;TESTOPS_DB_NAME
— имя базы данных;TESTOPS_DB_USERNAME
— имя пользователя для подключения к базе данных;TESTOPS_DB_PASS
— пароль для подключения к базе данных.
подключения к серверу RabbitMQ:
RABBIT_HOST
— имя хоста сервера;RABBIT_PORT
— порт сервера;RABBIT_USER
— имя пользователя для подключения к очереди сообщений;RABBIT_PASS
— пароль для подключения к очереди сообщений.
подключения к серверу хранения данных, совместимому с S3:
TESTOPS_S3_URL
— URL-адрес сервера;TESTOPS_S3_BUCKET
— имя бакета S3;TESTOPS_S3_REGION
— имя региона S3;TESTOPS_S3_ACCESS_KEY
— ключ доступа для подключения к бакету;TESTOPS_S3_SECRET_KEY
— секретный ключ для подключения к бакету.
Информацию о том, как настроить доступ к внешним S3-хранилищам, таким как Amazon S3 и Google Cloud Storage, см. в этой статье.
Некоторые дополнительные параметры могут быть изменены для тонкой настройки производительности или поддержки нестандартных конфигураций сервисов хранения. Проверьте комментарии в файле .env и при необходимости проконсультируйтесь со службой поддержки ТестОпс.
Первый запуск
При первом запуске ТестОпс выполнит проверку всех настроек и попытается подключиться ко всем настроенным сервисам:
- Если все указано правильно, ТестОпс отправит приглашение на электронную почту из переменной
FIRST_ADMIN_EMAIL
. - Если ТестОпс не сможет подключиться к каким-либо сервисам или параметры конфигурации указаны неверно, приложение завершится с ошибкой, а детали сбоя отразятся в логах.
Загрузка Docker-образов
Перед запуском ТестОпс вам необходимо загрузить Docker-образы — образы сервисов ТестОпс, а также некоторых сторонних сервисов (Redis, MinIO и т. д.).
Примечание
Точный список образов зависит от выбранного вами шаблона конфигурации. Например, демоверсия ТестОпс (не подходит для производственной среды) включает в себя сервис PostgreSQL, которого нет в других конфигурациях. Мы рекомендуем не полагаться на сервисы хранения данных, предоставляемых по умолчанию. Оптимальный вариант — развернуть все сервисы отдельно, указав их учетные данные в конфигурационном файле ТестОпс.
Откройте терминал.
Перейдите в директорию установки ТестОпс, например:
shcd ~/testops
Войдите в реестр Docker-образов:
shdocker login reg.qatools.ru --username <username> --password <password>
где
username
иpassword
— учетные данные, предоставленные отделом продаж.Загрузите образы:
shdocker compose pull
Процесс может занять несколько минут в зависимости от скорости интернет-соединения на вашем сервере или виртуальной машине.
Запуск приложения
Откройте терминал.
Перейдите в директорию установки ТестОпс, например:
shcd ~/testops
Запустите ТестОпс:
shdocker compose up -d
Запуск всех сервисов ТестОпс занимает некоторое время. Подождите несколько минут перед переходом к следующему шагу.
После запуска ТестОпс вам придет письмо с приглашением на адрес, который вы указали в
FIRST_ADMIN_EMAIL
. В полученном письме нажмите Принять приглашение.Примечание
Если в браузере появляется ошибка «Невозможно подключиться» (“Unable to connect”) или «Сайт недоступен» (“This site can't be reached”), это может означать, что некоторые сервисы все еще инициализируются.
Если через 5 минут браузер все еще не сможет открыть страницу, обратитесь к разделу Устранение неполадок.
В форме принятия приглашения введите полное имя администратора и учетные данные, которые будут использоваться для входа в систему: Имя пользователя и Пароль. Имя пользователя должно быть уникальным в пределах инстанса ТестОпс.
Нажмите Продолжить.
В форме активации введите лицензионный ключ, который вы получили от отдела продаж. Убедитесь, что вы указываете ключ без лишних пробелов и других символов.
Нажмите Активировать лицензию.
Управление состоянием сервисов
Запуск сервисов
Для запуска ТестОпс:
Откройте терминал.
Перейдите в директорию установки ТестОпс, например:
shcd ~/testops
Запустите конфигурацию Docker Compose:
shdocker compose up -d
Остановка сервисов
Для остановки ТестОпс:
Откройте терминал.
Перейдите в директорию установки ТестОпс, например:
shcd ~/testops
Выполните команду:
shdocker compose down
Важно
Всегда используйте команду
docker compose down
, чтобы применить новые параметры конфигурации. Последующая командаdocker compose up -d
заставит Docker Compose перечитать обновленный конфигурационный файл, другие команды (stop
,start
,restart
) этого не делают.
Перезапуск сервисов
Для перезапуска ТестОпс:
Откройте терминал.
Перейдите в директорию установки ТестОпс, например:
shcd ~/testops
Выполните команду:
shdocker compose down; docker compose up -d
Обновление
Важно
Перед началом обязательно ознакомьтесь с информацией о релизах для версии ТестОпс, на которую вы обновляетесь. В комментариях к релизу может содержаться важная информация о том, как адаптировать конфигурационные файлы или мигрировать данные на новую версию ТестОпс. Если вы пропускаете одну или несколько версий, также прочитайте комментарии к пропущенным версиям.
В директории вашей установки отредактируйте файл .env в текстовом редакторе:
- В параметре
RELEASE_TO_DEPLOY
укажите версию ТестОпс, на которую вы хотите обновиться. - При необходимости измените другие параметры в соответствии с актуальной информацией о релизах.
- В параметре
Откройте терминал.
Перейдите в директорию установки ТестОпс, например:
shcd ~/testops
Убедитесь, что Docker подключен к репозиторию Docker-образов:
shdocker login reg.qatools.ru --username <username> --password <password>
где
username
иpassword
— учетные данные, предоставленные отделом продаж.Обновите Docker-образы:
shdocker compose pull
Этот процесс может занять несколько минут в зависимости от скорости вашего интернет-соединения.
Перезапустите ТестОпс:
shdocker compose down; docker compose up -d
Удаление
Чтобы удалить экземпляр ТестОпс:
Откройте терминал.
Перейдите в директорию установки ТестОпс, например:
shcd ~/testops
Удалите контейнеры Docker и все связанные данные:
shdocker compose down -v --rmi local
Команда удалит данные Docker Volume, то есть все данные, связанные с развертыванием.
Устранение неполадок
Если вы столкнулись с проблемой, не перезапускайте ТестОпс. Специалистам технической поддержки нужны логи каждого компонента, чтобы понять, что произошло.
Обратитесь в службу поддержки ТестОпс с вашей корпоративной электронной почты — нажмите Создать обращение и заполните форму:
- Подробно опишите проблему, с которой вы столкнулись.
- Укажите способ установки и версию ТестОпс, а также всех дополнительных компонентов, с которыми у вас возникли проблемы (allurectl, интеграционные плагины и т. д.).
- Приложите логи из вашей системы в качестве вложений к обращению (см. подробности ниже). Пожалуйста, добавляйте только логи, описанные ниже, и только в виде вложения.
Получение логов конкретного компонента
Развертывание ТестОпс состоит из нескольких компонентов (основной из них — testops
). Чтобы обратиться в службу поддержки, вам нужно получить логи каждого компонента отдельно.
Откройте терминал.
Перейдите в директорию установки ТестОпс, например:
shcd ~/testops
Выведите список запущенных служб ТестОпс:
shdocker compose ps
Пример списка:
plainname@computer folder-name % docker compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS testops testops/testops:5.6.4 "...entrypoint.sh" testops hour ago healthy 7777->8080/tcp rabbitmq rabbitmq:3.9 "...entrypoint.sh" rabbitmq hour ago healthy 5671-5672/tcp redis redis:6.2 "...entrypoint.sh" redis hour ago healthy 6379/tcp
Выберите
SERVICE
, для которого вы хотите сохранить логи. Например,testops
содержит логи приложения ТестОпс, аredis
— логи для экземпляра Redis, развернутого в Docker Compose (если вы его используете).Сохраните логи в файл:
shdocker compose logs ⟨SERVICE⟩ > ⟨SERVICE⟩.log
где
SERVICE
— имя сервиса из списка запущенных служб.Например:
shdocker compose logs testops > testops.log
Дополнительные проверки
Также проверьте:
- количество доступной памяти для хранения артефактов:
df -h --total
; - доступные i-узлы для хранения артефактов:
df -i
; - количество доступной оперативной памяти:
free -h
,top
.