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

Установка ТестОпс версии 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 «с нуля»

  1. Установите Docker (руководство по установке на сайте Docker).

  2. Установите плагин Docker Compose V2 (руководство по установке на сайте Docker).

  3. Разверните дополнительные сервисы, необходимые для запуска ТестОпс:

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

    Примечание

    Установка без выделенных внешних сервисов тоже возможна (например, в демоверсии ТестОпс), однако такой вариант предназначен только для оценочных целей и официально не поддерживается. Обслуживание и обновление подобной конфигурации могут привести к значительному времени простоя или потере данных. Мы не сможем помочь в решении проблем и восстановлении сервиса.

  4. Получите лицензию для ТестОпс:

  5. Получите подробную информацию о настройке аутентификации внутри вашей организации.

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

    • Стандартная аутентификация с помощью имени пользователя и пароля, реализованная в ТестОпс.

      Этот вариант использует SMTP-сервер для отправки приглашений новым пользователям и не требует использования дополнительных сервисов.

    • Аутентификация через внешнего провайдера идентификационных данных (IdP).

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

Загрузка и изменение файлов конфигурации

  1. Скачайте архив конфигурационных файлов Docker Compose в формате ZIP по ссылке.

  2. Извлеките файлы из архива в домашнюю директорию пользователя на виртуальной машине или сервере, где планируется разворачивать ТестОпс.

  3. Перейдите в директорию распакованного архива.

  4. В зависимости от выбранного метода аутентификации перейдите в соответствующую директорию:

    • testops — для классической аутентификации на основе имени пользователя и пароля;
    • testops-ldap — для аутентификации через LDAP-сервер;
    • testops-saml — для аутентификации через провайдера SAML2-идентификации (Keycloak, GitLab, Azure AD, Okta);
    • testops-openid — для аутентификации через OpenID Connect (Keycloak, GitLab, Azure AD, Okta).
  5. Для выбранной конфигурации переименуйте файл env-example в .env. Итоговый файл должен иметь точку в начале имени файла.

    К сведению

    Директория testops-demo содержит демоверсию ТестОпс, которая не подходит для производственной среды. Эта конфигурация может быть использована только для ознакомления с системой.

  6. Переименуйте файл env-example выбранной конфигурации в .env.

    Для запуска ТестОпс вам потребуются два файла:

    • docker-compose.yml (не редактируется) — определяет архитектуру развертывания в Docker Compose;
    • .env (редактируется в соответствии с вашими потребностями) — хранит переменные окружения, которые будет использовать Docker Compose при запуске развертывания.

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

  7. Переместите файлы .env и docker-compose.yml в директорию, где вы планируете хранить настройки для инстанса ТестОпс версии 5.x.

  8. Откройте файл .env в текстовом редакторе. Для типичной настройки выполните следующие действия:

    1. Укажите версию ТестОпс.
    2. Укажите правильную информацию о реестре образов и репозитории.
    3. Настройте URL-адрес ТестОпс.
    4. Настройте ключ шифрования для конфиденциальных данных.
    5. Настройте адрес электронной почты первого администратора.
    6. Настройте аутентификацию.
    7. Настройте сервисы хранения данных.

Выбор версии ТестОпс

В параметре 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]

Настройка аутентификации

Необходимый шаг при развертывании ТестОпс - настройка того, как пользователи (кроме первого администратора) будут регистрироваться и входить в систему.

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

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

Настройка сервисов хранения данных

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

  • подключения к серверу 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, которого нет в других конфигурациях. Мы рекомендуем не полагаться на сервисы хранения данных, предоставляемых по умолчанию. Оптимальный вариант — развернуть все сервисы отдельно, указав их учетные данные в конфигурационном файле ТестОпс.

  1. Откройте терминал.

  2. Перейдите в директорию установки ТестОпс, например:

    cd ~/testops
  3. Войдите в реестр Docker-образов:

    docker login reg.qatools.ru --username <username> --password <password>

    где username и password — учетные данные, предоставленные отделом продаж.

  4. Загрузите образы:

    docker compose pull

    Процесс может занять несколько минут в зависимости от скорости интернет-соединения на вашем сервере или виртуальной машине.

Запуск приложения

  1. Откройте терминал.

  2. Перейдите в директорию установки ТестОпс, например:

    cd ~/testops
  3. Запустите ТестОпс:

    docker compose up -d

    Запуск всех сервисов ТестОпс занимает некоторое время. Подождите несколько минут перед переходом к следующему шагу.

  4. После запуска ТестОпс вам придет письмо с приглашением на адрес, который вы указали в FIRST_ADMIN_EMAIL. В полученном письме нажмите Принять приглашение.

    Примечание

    Если в браузере появляется ошибка «Невозможно подключиться» (“Unable to connect”) или «Сайт недоступен» (“This site can't be reached”), это может означать, что некоторые сервисы все еще инициализируются.

    Если через 5 минут браузер все еще не сможет открыть страницу, обратитесь к разделу Устранение неполадок.

  5. В форме принятия приглашения введите полное имя администратора и учетные данные, которые будут использоваться для входа в систему: Имя пользователя и Пароль. Имя пользователя должно быть уникальным в пределах инстанса ТестОпс.

    Нажмите Продолжить.

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

    Нажмите Активировать лицензию.

Управление состоянием сервисов

Запуск сервисов

Для запуска ТестОпс:

  1. Откройте терминал.

  2. Перейдите в директорию установки ТестОпс, например:

    cd ~/testops
  3. Запустите конфигурацию Docker Compose:

    docker compose up -d

Остановка сервисов

Для остановки ТестОпс:

  1. Откройте терминал.

  2. Перейдите в директорию установки ТестОпс, например:

    cd ~/testops
  3. Выполните команду:

    docker compose down
    Важно

    Всегда используйте команду docker compose down, чтобы применить новые параметры конфигурации. Последующая команда docker compose up -d заставит Docker Compose перечитать обновленный конфигурационный файл, другие команды (stop, start, restart) этого не делают.

Перезапуск сервисов

Для перезапуска ТестОпс:

  1. Откройте терминал.

  2. Перейдите в директорию установки ТестОпс, например:

    cd ~/testops
  3. Выполните команду:

    docker compose down; docker compose up -d

Обновление

Важно

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

  1. В директории вашей установки отредактируйте файл .env в текстовом редакторе:

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

  3. Перейдите в директорию установки ТестОпс, например:

    cd ~/testops
  4. Убедитесь, что Docker подключен к репозиторию Docker-образов:

    docker login reg.qatools.ru --username <username> --password <password>

    где username и password — учетные данные, предоставленные отделом продаж.

  5. Обновите Docker-образы:

    docker compose pull

    Этот процесс может занять несколько минут в зависимости от скорости вашего интернет-соединения.

  6. Перезапустите ТестОпс:

    docker compose down; docker compose up -d

Удаление

Чтобы удалить экземпляр ТестОпс:

  1. Откройте терминал.

  2. Перейдите в директорию установки ТестОпс, например:

    cd ~/testops
  3. Удалите контейнеры Docker и все связанные данные:

    docker compose down -v --rmi local

    Команда удалит данные Docker Volume, то есть все данные, связанные с развертыванием.

Устранение неполадок

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

Обратитесь в службу поддержки ТестОпс с вашей корпоративной электронной почты — нажмите Создать обращение и заполните форму:

  1. Подробно опишите проблему, с которой вы столкнулись.
  2. Укажите способ установки и версию ТестОпс, а также всех дополнительных компонентов, с которыми у вас возникли проблемы (allurectl, интеграционные плагины и т. д.).
  3. Приложите логи из вашей системы в качестве вложений к обращению (см. подробности ниже). Пожалуйста, добавляйте только логи, описанные ниже, и только в виде вложения.

Получение логов конкретного компонента

Развертывание ТестОпс состоит из нескольких компонентов (основной из них — testops). Чтобы обратиться в службу поддержки, вам нужно получить логи каждого компонента отдельно.

  1. Откройте терминал.

  2. Перейдите в директорию установки ТестОпс, например:

     cd ~/testops
  3. Выведите список запущенных служб ТестОпс:

    docker compose ps

    Пример списка:

    name@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
  4. Выберите SERVICE, для которого вы хотите сохранить логи. Например, testops содержит логи приложения ТестОпс, а redis — логи для экземпляра Redis, развернутого в Docker Compose (если вы его используете).

  5. Сохраните логи в файл:

    docker compose logs ⟨SERVICE⟩ > ⟨SERVICE⟩.log

    где SERVICE — имя сервиса из списка запущенных служб.

    Например:

    docker compose logs testops > testops.log

Дополнительные проверки

Также проверьте:

  • количество доступной памяти для хранения артефактов: df -h --total;
  • доступные i-узлы для хранения артефактов: df -i;
  • количество доступной оперативной памяти: free -h, top.