Перейти к содержанию

Обновление 3.12.0 до 3.13.0

  1. Установите SSH-соединение с сервером.

    ssh <user-name>@<your-server>
    
  2. Перейдите в директорию, указанную при установке AppSec.Track (рекомендуемая директория — /opt/appsec-track/).

    cd /opt/appsec-track
    
  3. Для остановки AppSec.Track выполните команду:

    sudo docker-compose down
    
  4. Загрузите образы в Docker. Предусмотрена возможность загрузки образов как из репозитория docker.swordfishsecurity.com, так и из дистрибутива.

    1. Авторизуйтесь в репозитории docker.swordfishsecurity.com.

      sudo docker login docker.swordfishsecurity.com -u <user-name>
      
    2. Загрузите образы.

      sudo docker pull docker.swordfishsecurity.com/appsec-track/track-backend:3.13.0
      sudo docker pull docker.swordfishsecurity.com/appsec-track/track-frontend:3.13.0
      sudo docker pull docker.swordfishsecurity.com/appsec-track/track-db:1.7.5-13.16
      sudo docker pull docker.swordfishsecurity.com/appsec-track/track-redis:1.7.5-7.2.4
      sudo docker pull docker.swordfishsecurity.com/appsec-track/track-scanner:1.7.5-0.51.1-7
      
    1. Скопируйте Docker-образы на сервер.

      scp home/<user-name>/track-backend-3.13.0.tar root@<your-server>:/home/<user-name>
      scp home/<user-name>/track-frontend-3.13.0.tar root@<your-server>:/home/<user-name>
      scp home/<user-name>/track-db-1.7.5-13.16.tar root@<your-server>:/home/<user-name>
      scp home/<user-name>/track-redis-1.7.5-7.2.4.tar root@<your-server>:/home/<user-name>
      scp home/<user-name>/track-scanner-1.7.5-0.51.1-7.tar root@<your-server>:/home/<user-name>
      
    2. Загрузите образы.

      sudo docker load --input /home/<user-name>/track-backend-3.13.0.tar
      sudo docker load --input /home/<user-name>/track-frontend-3.13.0.tar
      sudo docker load --input /home/<user-name>/track-db-1.7.5-13.16.tar
      sudo docker load --input /home/<user-name>/track-redis-1.7.5-7.2.4.tar
      sudo docker load --input /home/<user-name>/track-scanner-1.7.5-0.51.1-7.tar
      

    Примечание

    <user-name> — имя пользователя;
    <your-server> — URL или IP сервера.

  5. Для проверки результатов предыдущих шагов выполните следующую команду:

    sudo docker images
    

    Необходимо убедиться, что в списке Docker-контейнеров присутствуют track-backend, track-frontend, track-db, track-redis и track-scanner, а также проверить версию каждого контейнера.

    REPOSITIRY                                              TAG
    docker.swordfishsecurity.com/appsec-track/track-backend:3.13.0
    docker.swordfishsecurity.com/appsec-track/track-frontend:3.13.0
    docker.swordfishsecurity.com/appsec-track/track-db:1.7.5-13.16
    docker.swordfishsecurity.com/appsec-track/track-redis:1.7.5-7.2.4
    docker.swordfishsecurity.com/appsec-track/track-scanner:1.7.5-0.51.1-7
    
  6. Отредактируйте файл переменных окружения .env, указав в переменных backend_image, frontend_image, db_image, redis_image и scanner_image новые версии образов, полученные на предыдущем шаге, например:

    Редактирование файла .env

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

    ls -la
    

    Для редактирования можно воспользоваться редактором nano:

    sudo nano .env
    

    .env
    # Images
    backend_image=docker.swordfishsecurity.com/appsec-track/track-backend:3.13.0
    frontend_image=docker.swordfishsecurity.com/appsec-track/track-frontend:3.13.0
    db_image=docker.swordfishsecurity.com/appsec-track/track-db:1.7.5-13.16
    redis_image=docker.swordfishsecurity.com/appsec-track/track-redis:1.7.5-7.2.4
    scanner_image=docker.swordfishsecurity.com/appsec-track/track-scanner:1.7.5-0.51.1-7
    
    Дополните файл .env новыми переменными и их значениями (новые строки выделены цветом):

    .env
    ...
    #URL's для работы track-scanner
    scanner_url=http://appsec-track-scanner:8080/trivy
    nexus_url=https://nexus.example.org
    #Изменить на true, если используется свой CA для выпуска сертификатов нексуса
    scanner_insecure=false
    ...
    
  7. Приведите блок server в конфигурационном файле .config/application-prod.yml к данном виду (новые строки выделены цветом):

    Дополните файл двумя новыми переменными (новые строки выделены цветом):

    ...
    dockerUrl: ${nexus_url}
    anonymousInfo: ${ANONYMOUS_INFO:true}
    anonymousScaReport: ${ANONYMOUS_SCA_REPORT:true}
    springdoc:
    ...
    
  8. Приведите файл ./entrypoint/entrypoint.sh к данном виду:

    #!/bin/sh
    if [ -z "`find \"/track/ldap/certs\" -mindepth 1 -exec echo notempty \; -quit`" ]; then
        echo "Сертификатов для установки не обнаружено"
    else
        echo "Установка дополнительных сертификатов в Java "
        CERTS=$(find /track/ldap/certs -type f \( -iname \*.crt -o -iname \*.pem \))
        for FILENAME in $CERTS; do
            ALIAS=$(echo $FILENAME | sed -r 's/[^[:alnum:]]+//g')
            echo "Добавление сертификата $FILENAME в keystore (alias=$ALIAS)"
            keytool -importcert -file $FILENAME -keystore cacerts  -storepass ${ldap_store_pass} -alias $ALIAS -noprompt
            if [ $? -ne 0 ]; then
            echo " -> Ошибка при добавлении сертификата"
            else
            echo " -> Сертификат добавлен"
            fi
        done
    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 -jar /track/track.jar --spring.config.location=/track/config/application-prod.yml
    
  9. Дополните файл docker-compose.yaml новой переменной окружения:

    ...
    appsec-track-scanner:
        container_name: appsec-track-scanner
        hostname: appsec-track-scanner
        image: ${scanner_image}
        ports:
        - "8080"
        networks:
        - track_net
        environment:
        - TZ=Europe/Moscow
        - TRIVY_INSECURE=${scanner_insecure}
        restart: always
        security_opt:
        - no-new-privileges
    
    ...
    
  10. Запустите контейнеры AppSec.Track.

    sudo docker-compose up -d
    

    Система перезагрузится и будет готова к использованию.

  11. Перейдите в пользовательский интерфейс AppSec.Track по адресу хоста (например, http://<AppSec.Track_IP_address>:8070/). Логин и пароль пользователя после обновления останутся прежними.