Обновление 3.20.0 до 3.21.0¶
Для обновления необходимо использовать актуальный комплект поставки системы.
-
Установите SSH-соединение с сервером.
ssh <user-name>@<your-server>
-
Перейдите в директорию, указанную при установке AppSec.Track (рекомендуемая директория — /opt/appsec-track/).
cd /opt/appsec-track
-
Остановите и удалите контейнеры AppSec.Track, выполнив команду:
sudo docker-compose down
-
При обновлении без скачивания дистрибутива необходимо обновить скрипт ./entrypoint/entrypoint.sh. Новый скрипт, который необходимо использовать в этом случае:
#!/bin/sh set -eu LDAP_TRUSTSTORE="/track/cacerts" LDAP_CERT_DIR="/track/ldap/certs" DEFAULT_LDAP_STORE_PASS="changeit" LDAP_STORE_PASS="${ldap_store_pass:-$DEFAULT_LDAP_STORE_PASS}" cp "$JAVA_HOME/lib/security/cacerts" "$LDAP_TRUSTSTORE" chmod 640 "$LDAP_TRUSTSTORE" if [ "$LDAP_STORE_PASS" != "$DEFAULT_LDAP_STORE_PASS" ]; then keytool -storepasswd \ -new "$LDAP_STORE_PASS" \ -keystore "$LDAP_TRUSTSTORE" \ -storepass "$DEFAULT_LDAP_STORE_PASS" \ -noprompt fi if [ -d "$LDAP_CERT_DIR" ] && [ "$(find "$LDAP_CERT_DIR" -type f \( -iname '*.crt' -o -iname '*.pem' \) -print -quit)" ]; then echo "Установка дополнительных сертификатов в Java" for CERT in "$LDAP_CERT_DIR"/*.crt "$LDAP_CERT_DIR"/*.pem; do [ -f "$CERT" ] || continue ALIAS=$(echo "$CERT" | tr -dc '[:alnum:]') echo "Добавление сертификата $CERT (alias=$ALIAS)..." if keytool -importcert -file "$CERT" -keystore "$LDAP_TRUSTSTORE" -storepass "$LDAP_STORE_PASS" -alias "$ALIAS" -noprompt; then echo " -> Сертификат успешно добавлен" else echo " -> Ошибка при добавлении сертификата" fi done else echo "Сертификатов для установки не обнаружено" fi if [ -z "`find \"/track/tls/certs\" -mindepth 1 -exec echo notempty \; -quit`" ]; then echo "Cертификатов для терминирования tls не обнаружено или терминирование не включено" else echo "Загружаю сертификат для терминирования tls" openssl pkcs12 -export -in /track/tls/certs/fullchain.pem -inkey /track/tls/certs/privkey.pem -passout pass:${pksc_store_pass} > /track/server.p12 keytool -importkeystore -srckeystore /track/server.p12 -destkeystore server.jks -srcstoretype pkcs12 -srcstorepass ${pksc_store_pass} -deststorepass ${jks_store_pass} fi java -Djavax.net.ssl.trustStore=$LDAP_TRUSTSTORE \ -Djavax.net.ssl.trustStorePassword=$LDAP_STORE_PASS \ -jar /track/track.jar --spring.config.location=/track/config/application-prod.yml
-
Загрузите образы в Docker. Предусмотрена возможность загрузки образов как из репозитория registry.appsec.global, так и из дистрибутива.
-
Авторизуйтесь в репозитории registry.appsec.global.
sudo docker login registry.appsec.global -u <user-name>
-
Загрузите образы.
sudo docker pull registry.appsec.global/appsec-track/track-backend:3.21.0 sudo docker pull registry.appsec.global/appsec-track/track-frontend:3.21.0 sudo docker pull registry.appsec.global/appsec-track/track-db:3.21.0 sudo docker pull registry.appsec.global/appsec-track/track-redis:3.21.0 sudo docker pull registry.appsec.global/appsec-track/track-scanner:3.21.0
-
Скопируйте Docker-образы на сервер.
scp home/<user-name>/track-backend-3.21.0.tar root@<your-server>:/home/<user-name> scp home/<user-name>/track-frontend-3.21.0.tar root@<your-server>:/home/<user-name> scp home/<user-name>/track-db-3.21.0.tar root@<your-server>:/home/<user-name> scp home/<user-name>/track-redis-3.21.0.tar root@<your-server>:/home/<user-name> scp home/<user-name>/track-scanner-3.21.0.tar root@<your-server>:/home/<user-name>
-
Загрузите образы.
sudo docker load --input /home/<user-name>/track-backend-3.21.0.tar sudo docker load --input /home/<user-name>/track-frontend-3.21.0.tar sudo docker load --input /home/<user-name>/track-db-3.21.0.tar sudo docker load --input /home/<user-name>/track-redis-3.21.0.tar sudo docker load --input /home/<user-name>/track-scanner-3.21.0.tar
Примечание
<user-name>
— имя пользователя;
<your-server>
— URL или IP сервера. -
-
Для проверки результатов предыдущих шагов выполните следующую команду:
sudo docker images
Необходимо убедиться, что в списке Docker-контейнеров присутствуют track-backend, track-frontend, track-db, track-redis и track-scanner, а также проверить версию каждого контейнера.
REPOSITIRY TAG registry.appsec.global/appsec-track/track-backend:3.21.0 registry.appsec.global/appsec-track/track-frontend:3.21.0 registry.appsec.global/appsec-track/track-db:3.21.0 registry.appsec.global/appsec-track/track-redis:3.21.0 registry.appsec.global/appsec-track/track-scanner:3.21.0
-
Отредактируйте файл переменных окружения .env, указав в переменных backend_image, frontend_image, db_image, redis_image и scanner_image новые версии образов, полученные на предыдущем шаге, например:
Редактирование файла .env
Для отображения файлов, имена которых начинаются точкой, например .env, рекомендуется использовать команду:
ls -la
Для редактирования можно воспользоваться редактором nano:
sudo nano .env
.env# Images backend_image=registry.appsec.global/appsec-track/track-backend:3.21.0 frontend_image=registry.appsec.global/appsec-track/track-frontend:3.21.0 db_image=registry.appsec.global/appsec-track/track-db:3.21.0 redis_image=registry.appsec.global/appsec-track/track-redis:3.21.0 scanner_image=registry.appsec.global/appsec-track/track-scanner:3.21.0
-
Запустите контейнеры AppSec.Track.
sudo docker-compose up -d
Система перезагрузится и будет готова к использованию.
-
Перейдите в пользовательский интерфейс AppSec.Track по адресу хоста (например,
http://<AppSec.Track_IP_address>:8070/
). Логин и пароль пользователя после обновления останутся прежними.