21. Переезд на собственную инфраструктуру Java - qa-guru/knowledge-base GitHub Wiki
В этом руководстве описано, как собрать собственный тестовый стенд, который используется для обучения в школе QA GURU. Для работы понадобится Docker, Selenoid, Jenkins, командная строка и любой редактор кода.
Поднимаем сервер
Для аутентификации необходимо создать SSH-ключ. Что-то похожее мы уже делали во время настройки GitHub. Сначала проверим есть ли уже какие-то ключи в директории .ssh
с помощью команды ls -l ~/.ssh grep id_rsa
.
Сгенерировать новый ключ можно с помощью утилиты ssh-keygen
. Команда для запуска генерации выглядит так: ssh-keygen -t rsa -b 4096 -C [email protected]
. Строка после ключа -C
служит в качестве комментария. В ней можно указать любую информацию, которая поможет понять для чего нужен этот ключ. К примеру, можно указать имя пользователя или адрес электронной почты.
Далее SSH-агенту надо передать ключи, чтобы он мог ими воспользоваться. Для этого воспользуемся командой ssh-add ~/.ssh/id_rsa
.
После ключ необходимо добавить на сервисе, который используется для аренды сервера. Также надо создать сервер и получить от системы его IP-адрес. Также на локальной машине можно перейти в папку .ssh
и в файле config
добавить в лейбл хоста его IP-адрес. Это поможет не вводить его каждый раз.
Когда всё это сделано, то из терминала можно подключиться к удалённому серверу с помощью команды ssh hostname
, где hostname
– имя хоста.
Первичная настройка удалённого сервера
Первым делом необходимо изменить пароль сервера с помощью команды password
. Дале обновляем данные репозиториев. Вводим команду apt update && apt upgrade -y
.
Теперь установим утилиту Midnight Commander с помощью команды apt instal mc
. Запустить её можно с помощью команды mc
.
Устанавливаем Java
Java устанавливается с помощью команды sudo apt-get install default-jdk
. После установки проверим наличие переменной окружения командой echo $JAVA_HOME
.
Чтобы установить значение переменной откроем в редакторе файл environment
. Выполним команду sudo nano /etc/environment
. В нём создадим переменную JAVA_HOME
и передадим ей путь к Java. К примеру, целая строка может выглядеть так JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
.
Теперь обновим данные командой source /etc/environment
и ещё раз запустим echo $JAVA_HOME
. В консоль должен вывестись путь к Java.
Установка Docker
Docker можно установить с помощью скрипта curl -sSL https://get.docker.com | sh
.
Создаём директории
Теперь необходимо создать директории. Удобнее всего это будет сделать с помощью утилиты Midnight Commander, которую мы уже установили. Дерево директорий в итоге должно выглядеть следующим образом:
opt/
├─ test-bed/
│ ├─ work/
│ │ ├─ selenoid/
│ │ ├─ jenkins/
│ ├─ init/
│ │ ├─ selenoid/
Теперь в папке test-bed
надо создать файл docker-compose.yml
. В нём прописываем конфигурацию Jenkins:
version: `3.4'
services:
jenkins:
user: root
restart: unless-stopped
# build:
# context: ./image
image: jenkins/jenkins:lts
volumes:
- S(PWD)/work/jenkins:/var/jenkins_home
- /var/run/docker .sock:/var/run/docker .sock
ports:
- 8888:8080
network_mode: bridge
После, находясь в директории, вызываем команду docker compose pull
. Запустить можно командой docker compose up -d
. Затем можем перейти в консоль Jenkins, введя в адресной строке браузера http:/ip-address:8888
. Из плагинов можно сразу установить рекомендованные. Также надо будет пройти процесс первичной настройки администратора.
Из дополнительных плагинов необходимо установить Allure Report.
Добавляем конфигурацию Selenoid
Для добавления конфигурации Selenoid дополним файл docker-compose.yml
следующим:
selenoid:
image: aerokube/selenoid:latest-release
volumes:
- "${PWD}/init/selenoid:/etc/selenoid"
- "${PWD}/work/selenoid/video:/opt/selenoid/video"
- "${PWD}/work/selenoid/logs:/opt/selenoid/logs"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- OVERRIDE_VIDEO_OUTPUT_DIR=work/selenoid/video
command: ["-conf", "/etc/selenoid/browsers.json", "-video-output-dir", "/opt/selenoid/video", "-log-output-dir", "/opt/selenoid/logs"]
ports:
- "4444:4444"
network_mode: bridge
Запустить можно командой docker compose up -d
.
Проверит работу Selenoid можно перейдя по адресу http:/ip-address:4444/status
.
Добавляем Selenoid UI
Также дополняем файл docker-compose.yml
:
selenoid-ui:
image: "aerokube/selenoid-ui:latest-release"
network_mode: bridge
links:
- selenoid
ports:
- "8080:8080"
command: ["--selenoid-uri", "http://selenoid:4444"]
Запуск: docker compose up -d
.
Установим браузеры командой docker pull selenoid/vnc:chrome_101.0 && docker pull selenoid/vnc:chrome_102.0
.