Oбновление 1.10 до 2.0
AppSec.Hub (UI/Core)
-
Укажите новые версии образов в файле .env.
hub_core_version=2.0 hub_ui_version=2.0 hub_air_version=2.0 hub_db_version=2.0
Примечание
Пример docker-compose.yml для AppSec.Hub можно посмотреть в «Приложении 9».
-
Загрузите новые версии контейнеров. Для этого в папке, указанной при установке (по умолчанию, /opt/apphub), выполните следующую команду.
docker-compose pull
-
После загрузки образов запустите систему.
docker-compose up -d
AppSec.Hub Engine (Jenkins)
Для обновления AppSec.Hub Engine (Jenkins) до версии 2.0 необходимо выполнить ряд следующих действий:
-
Укажите новые версии образов в файле .env.
jenkins_master=2.0.1 jenkins_node=2.0.1
-
Полный пример настройки Jenkins с помощью docker-compose.yml можно взять в «Приложении 10».
-
Для активации автоматического импорта самоподписанных сертификатов в контейнеры необходимо выполнить следующие действия.
-
Создать папку certs. Для этого в папке, указанной при установке (по умолчанию, /opt/apphub), выполните следующую команду.
mkdir -p certs
-
Сохранить в certs ВСЕ корневые и доменные сертификаты с расширением .crt и назначить необходимые разрешения.
sudo chmod 755 -R certs
-
Импортировать папку certs в контейнеры node-all и jenkins (через docker-compose.yml).
volumes: - ./certs:/tmp/certs
-
-
Для активации автоматического импорта самоподисанных сертификатов docker registry необходимо выполнить следующие действия.
-
Создать папку docker-certs. Для этого в папке, указанной при установке (по умолчанию, /opt/apphub), выполните следующую команду.
mkdir -p docker-certs
-
Сохранить ВСЕ корневые и доменные сертификаты в ней и импортировать в контейнер docker-in-docker (через docker-compose.yml).
volumes: - ./docker-certs:/etc/docker/certs.d
-
-
Контейнеры jenkins и node-all теперь запускаются от непривилегированного пользователя. Для корректной работы необходимо выполнить команду:
chown 1000:1000 -R jenkins_home chown 1000:1000 -R fortify
-
Для Jenkins master ноды необходимо удалить директорию plugins с данными неиспользуемых плагинов.
rm -rf jenkins_home/plugins
-
Для контейнера node-all необходимо задать необходимые права, пользователя и группу.
sudo chown 2000:2000 -R jenkins-slave-all sudo chmod 600 ssh-pub-keys-all/authorized_keys sudo chown 2000:2000 -R ssh-pub-keys-all
-
Для корректного работы Jenkins в контейнер jenkins необходимо добавить следующие переменные окружения (полное описание переменных окружения находится в «Приложении 11»):
environment: - JENKINS_URL=http://jenkins.company.com - JENKINS_ADMIN_USER=admin - JENKINS_ADMIN_PASSWORD=<some-password>
-
Для улучшения работы утилиты cdxgen в контейнер Jenkins можно добавить следующие переменные окружения (полное описание переменных окружения находится в «Приложении 11»).
environment: - gradle_dependency_task=dependencies - fetch_license=true - maven_home=/opt/maven - gradle_home=/opt/gradle - github_token= - gradle_args= - mvn_args= - cdxgen_npm_url=https://registry.npmjs.org/ - cdxgen_maven_central_url=https://repo1.maven.org/maven2/ - cdxgen_android_maven=https://maven.google.com/ - cdxgen_pypi_url=https://pypi.org/pypi/ - cdxgen_go_url=https://pkg.go.dev/ - cdxgen_nuget_url=https://api.nuget.org/v3/registration3/
-
Для корректной работы docker внутри контейнеров jenkins и node-all (без импорта Docker-сокета) был добавлен контейнер docker-in-docker:
docker-in-docker: image: docker:19.03.3-dind container_name: docker-in-docker privileged: true volumes: - ./docker-certs:/etc/docker/certs.d - /sys/fs/cgroup:/sys/fs/cgroup:ro environment: - DOCKER_TLS_CERTDIR= networks: - network pids_limit: 100 restart: on-failure:5 cpu_shares: 512 deploy: resources: limits: memory: 512M
-
Для корректной работы контейнера docker-in-docker необходимо выполнить следующие команды.
sudo mkdir /sys/fs/cgroup/systemd sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
-
Необходимо связать контейнеры jenkins, node-all и docker-in-docker.
environment: - DOCKER_HOST=tcp://docker-in-docker:2375
-
Для повышения безопасности контейнеров в файл docker-compose.yml в описание сервисов были добавлены следующие атрибуты:
-
Для Jenkins:
user: 1000:1000 pids_limit: 100 security_opt: - no-new-privileges restart: on-failure:5 cpu_shares: 1024 deploy: resources: limits: memory: 2048M
-
Для node-all:
user: 2000:2000 restart: on-failure:5 cpu_shares: 2048 deploy: resources: limits: memory: 3072M
-
Для docker-in-docker:
pids_limit: 100 security_opt: - no-new-privileges restart: on-failure:5 cpu_shares: 512 deploy: resources: limits: memory: 512M
-