Установка ТестОпс версии 5.x в Docker Compose
В разделе описывается, как установить и запустить ТестОпс версии 5.х в Docker Compose.
Инструкция для версии 4.x перенесена в архив. Чтобы установить и запустить ТестОпс, пожалуйста, используйте только актуальную инструкцию.
Установка с помощью Docker Compose - самый простой вариант установки ТестОпс, но подходит только для небольших команд с относительно небольшой нагрузкой (не более 3 000 результатов автотестов за запуск или не более 30 000 — в сутки). Если нагрузка возрастает, стабильность работы в Docker Compose будет ниже, чем при использовании Kubernetes или при установке c помощью пакетов Linux.
Поддержка аутентификации с использованием OpenID доступна, начиная с ТестОпс версии 5.6.0. Для серверного ра звертывания доступны OpenID, SAML2 и LDAP. Поддержка внешних провайдеров идентификационных данных в SaaS планируется в четвертом квартале 2024 года.
Миграция с ТестОпс версии 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
укажите версию ТестОпс, которую вы хотите использовать, например:
RELEASE_TO_DEPLOY=5.10.3
Шаги по установке актуальны для любой версии, начиная с ТестОпс 5.4.0. Мы рекомендуем использовать только последнюю доступную версию, так как она содержит новые возможности и улучшения в ТестОпс, а также исправления ошибок. Чтобы получить список доступных версий, ознакомьтесь с разделом Информация о релизах.
Реестр образов и репозиторий
Чтобы загрузить образ TecтОпс, укажите реестр образов и репозиторий, из которого будет загружен образ:
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.
TESTOPS_INSTANCE_URL=testops.example.com
TESTOPS_INSTANCE_PORT=80
TESTOPS_PROTO=http
Чтобы открыть доступ к ТестОпс через HTTPS, необходимо настроить обратный прокси.
Если вы планируете интеграцию ТестОпс с Jira, используйте HTTPS и включите защищенные cookie, чтобы интеграция работала правильно.
TESTOPS_SECURE_COOKIE=true
Настройка ключа шифрования для конфиденциальных данных
В качестве меры безопасности ТестОпс шифрует наиболее важные значения в своей базе данных с помощью секретного пароля. Таким образом, если злоумышленник получит доступ к базе данных PostgreSQL, но не к файлу конфигурации, это не повлияет на учетные данные других служб, используемых при развертывании.
Чтобы установить пароль, измените значение параметра TESTOPS_CRYPTO_PASSWORD
:
TESTOPS_CRYPTO_PASSWORD=ogheRiy7ooCh6Oocei6OdaD1iequooNa
Если вы забудете значение параметра TESTOPS_CRYPTO_PASSWORD
или измените его после настройки интеграций, все ранее настроенные интеграции перестанут работать. В этом случае вам нужно будет зайти в настройки каждого проекта и заново ввести правильные учетные данные.
Настройка почты для первого администратора
Начиная с версии 5.4.0, необходимо настроить учетные данные SMTP во время установки. Начиная с версии 5.6.0, первый запуск ТестОпс невозможен без использования настроенного SMTP-сервера.
ТестОпс будет использовать учетные данные SMTP для отправки пригласительного письма первому администратору независимо от выбранного основного метода аутентификации. Адрес электронной почты администратора должен быть указан в параметре FIRST_ADMIN_EMAIL
.
Ниже приведен пример параметров для учетной записи Gmail. Обратите внимание, что Google требует генерировать специальные пароли приложений для SMTP при включенной двухфакторной аутентификации. Другие почтовые службы, например Яндекс Почта, могут предъявлять аналогичные требования.
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=username
SMTP_PASSWORD=password
SMTP_MAIL_FROM=[email protected]
SMTP_AUTH=true
SMTP_STARTTLS_ENABLE=true
SMTP_STARTTLS_REQUIRED=true
SMTP_SSL_ENABLE=false
SMTP_SSL_TRUST=smtp.gmail.com
# ...
FIRST_ADMIN_EMAIL=[email protected]
Настройка аутентификации
Необходимый шаг при развертывании ТестОпс - настройка того, как пользователи (кроме первого администратора) будут регистрироваться и входить в систему.
Ниже приведены примеры конфигурации для различных поставщиков идентификационных данных.
- Аутентификация с именем пользователя и паролем
- LDAP
- SAML2
- OpenID
Если используется встроенная аутентификация, администраторы пригласят пользователей в систему через электронную почту. Когда пользователи создадут аккаунты, они будут входить в систему с помощью имени пользователя и пароля.
LDAP_URL="ldaps://ldaps.space:636"
LDAP_LOGIN_SA="cn=admin,dc=space"
LDAP_LOGIN_SA_PASS=SeriviceAccountPassword_Here
LDAP_DEFAULT_ROLE=ROLE_GUEST
LDAP_USER_SEARCH_BASE="ou=People,dc=space"
LDAP_USER_SEARCH_FILTER="uid={0}"
LDAP_UID_ATTRIBUTE=uid
LDAP_SYNC_ROLES=false
LDAP_GROUP_ROLE_ATTRIBUTE=cn
LDAP_GROUP_SEARCH_BASE="ou=group,dc=space"
LDAP_GROUP_SEARCH_FILTER="memberUid={1}"
LDAP_MAPPING_ROLE_USERS=atousers,every_user_is_user
LDAP_MAPPING_ROLE_ADMINS=atoadmins,every_user_is_admin
ALLURE_LOGIN_PRIMARY=saml
# ...
LOGIN_SAML2_ENABLED=true
REGISTRATION_DEFAULT_ROLE=ROLE_GUEST
LOGIN_SAML2_ID=KeyCloak
LOGIN_SAML2_ACS_URL=https://<your-domain>/api/login/saml2/sso/{registrationId}
LOGIN_SAML2_ENTITY_ID=https://<testops>/api/login/saml2/authenticate/{registrationId}
LOGIN_SAML2_METADATA_URL=https://path/to/metadata.xml
LOGIN_SAML2_FIRSTNAMEATTRIBUTE=firstNameAttribute
LOGIN_SAML2_LASTNAMEATTRIBUTE=lastNameAttribute
LOGIN_SAML2_EMAILATTRIBUTE=emailAttribute
LOGIN_SAML2_SYNCROLES=false
LOGIN_SAML2_GROUPROLEATTRIBUTE=groupRoleAttribute
LOGIN_SAML2_GROUPAUTHORITIES_ROLEUSERGROUPS=roleUserGroups
LOGIN_SAML2_GROUPAUTHORITIES_ROLEADMINGROUPS=roleAdminGroups
TESTOPS_OPENID_CLIENTNAME=TestOps
TESTOPS_OPENID_CLIENTID=<YOUR_CLIENT_ID>
TESTOPS_OPENID_CLIENTSECRET=<YOUR_CLIENT_SECRET_HERE>
TESTOPS_OPENID_REDIRECTURI=https://<your-domain>/login/oauth2/code/openid
TESTOPS_OPENID_SCOPE=openid,email,profile
TESTOPS_OPENID_AUTHORIZATIONURI=http://<open_id_provider_url>/realms/<you_realm>/protocol/openid-connect/auth
TESTOPS_OPENID_USERINFOURI=http://<open_id_provider_url>/realms/<you_realm>/protocol/openid-connect/userinfo
TESTOPS_OPENID_ISSUERURI=http://<open_id_provider_url>/realms/<you_realm>
TESTOPS_OPENID_USERNAMEATTRIBUTE=preferred_username
TESTOPS_OPENID_DEFAULTROLE=ROLE_GUEST
TESTOPS_OPENID_SYNCROLES=false
TESTOPS_OPENID_GROUPROLEATTRIBUTE=group
TESTOPS_OPENID_GROUPAUTHORITIES_ROLEUSERGROUPS=roleUserGroups
TESTOPS_OPENID_GROUPAUTHORITIES_ROLEADMINGROUPS=roleAdminGroups
Настройка сервисов хранения данных
Чтобы подключиться к сервисам хранения данных, которые используются в ТестОпс, определите параметры для:
-
подключения к серверу 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
— секретный ключ для подключения к бакету.
Некоторые дополнительные параметры могут быть изменены для тонкой настройки производительности или поддержки нестандартных конфигураций сервисов хранения. Проверьте комментарии в файле .env и при необходимости проконсультируйтесь со службой поддержки ТестОпс.
Первый запуск
При первом запуске ТестОпс выполнит проверку всех настроек и попытается подключиться ко всем настроенным сервисам:
- Если всё указано правильно, ТестОпс отправит приглашение на электронную почту из переменной
FIRST_ADMIN_EMAIL
. - Если ТестОпс не сможет подключиться к каким-либо сервисам или параметры конфигурации указаны неверно, приложение завершится с ошибкой, а детали сбоя отразятся в логах.
Загрузка Docker-образов
Перед запуском ТестОпс вам необходимо загрузить Docker-образы — образы сервисов ТестОпс, а также некоторых сторонних сервисов (Redis, MinIO и т. д.).
Точный список образов зависит от выбранного вами шаблона конфигурации. Например, демоверсия ТестОпс (не подходит для производственной среды) включает в себя сервис PostgreSQL, которого нет в других конфигурациях. Мы рекомендуем не полагаться на сервисы хранения данных, предоставляемых по умолчанию. Оптимальный вариант — развернуть все сервисы отдельно, указав их учетные данные в конфигурационном файле ТестОпс.
-
Откройте терминал.
-
Перейдите в директорию установки ТестОпс, например:
cd ~/testops
-
Войдите в реестр Docker-образов:
docker login reg.qatools.ru --username <username> --password <password>
где
username
иpassword
— учетные данные, предоставленные отделом продаж. -
Загрузите образы:
docker compose pull
Процесс может занять несколько минут в зависимости от скорости интернет-соединения на вашем сервере или виртуальной машине.
Запуск приложения
-
Откройте терминал.
-
Перейдите в директорию установки ТестОпс, например:
cd ~/testops
-
Запустите ТестОпс:
docker compose up -d
Запуск всех сервисов ТестОпс занимает некоторое время. Подождите несколько минут перед переходом к следующему шагу.
-
После запуска ТестОпс вам придет письмо с приглашением на адрес, который вы указали в
FIRST_ADMIN_EMAIL
. В полученном письме нажмите Принять приглашение.К сведениюЕсли в браузере появляется ошибка «Невозможно подключиться» (“Unable to connect”) или «Сайт недоступен» (“This site can't be reached”), это может означать, что некоторые сервисы все еще инициализируются.
Если через 5 минут браузер все еще не сможет открыть страницу, обратитесь к разделу Устранение неполадок.
-
В форме принятия приглашения введите полное имя администратора и учетные данные, которые будут использоваться для входа в систему: Имя пользователя и Пароль. Имя пользователя должно быть уникальным в пределах инстанса ТестОпс.
Нажмите Продолжить.
-
В форме активации введите лицензионный ключ, который вы получили от отдела продаж. Убедитесь, что вы указываете ключ без лишних пробелов и других символов.
Нажмите Активировать лицензию.
Управление состоянием сервисов
Запуск сервисов
Для запуска ТестОпс:
-
Откройте терминал.
-
Перейдите в директорию установки ТестОпс, например:
cd ~/testops
-
Запустите конфигурацию Docker Compose:
docker compose up -d