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

Обновление 2025.1.3 до 2025.2.1

Обновление AppSec.Hub (UI/Core) в Kubernetes

Примечание

Версия Helm-чарта Appsec.Hub: 0.2.8.

  1. Скачайте новый Helm-чарт.

    helm pull helm pull oci://registry.appsec.global/appsechub/hub-helm/appsechub --version 0.2.8
    
  2. Извлеките файлы из архива.

    tar -xvf tar -xvf appsechub-0.2.8.tgz && cd appsechub
    
  3. Сравните два файла values.yaml (текущий и новый из архива) для выявления изменений.

    diff -y --suppress-common-lines /path/to/actual/values.yaml /path/to/new/values.yaml
    
  4. Заполните новый файл values.yaml вашими значениями, в соответствии с требованиями вашей среды.

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

    helm upgrade --install appsechub . --namespace "appsechub" --create-namespace -f values.yaml
    

Список изменений в Helm-чарте Appsec.Hub

  1. В файл values.yaml в секции hubcore: добавлен параметр hub_jira_users_limit:

    hub_jira_users_limit: "-1"
    

    В нем указывается ограничение на количество пользователей Jira (по умолчанию параметр имеет значение -1, при котором ограничений на количество пользователей не будет).

  2. В файл values.yaml в секции env: добавлены параметры LOGS_LIFETIME_DAYS, ARCHIVE_LIFETIME_DAYSи SCHEDULER_INTERVAL_HOURS, определяющие удаление логов и архивов:

    LOGS_LIFETIME_DAYS: "30"
    ARCHIVE_LIFETIME_DAYS: "3"
    SCHEDULER_INTERVAL_HOURS: "24"
    CONSUL_SCHEDULER_INTERVAL_MINUTES: "60"
    

    Значения параметров:

    • LOGS_LIFETIME_DAYS - логи хранятся в течение указанного количества дней, а затем удаляются (по умолчанию 30).
    • ARCHIVE_LIFETIME_DAYS - архивы хранятся в течение указанного количества дней, а затем удаляются (по умолчанию 3).
    • SCHEDULER_INTERVAL_HOURS - интервал запуска инструмента очистки, как часто будет запускаться проверка на возраст логов и архивов (по умолчанию 24, т.е. проверка на удаление производится один раз в 24 часа).
    • CONSUL_SCHEDULER_INTERVAL_MINUTES - интервал запуска проверки регистрации в consul (если нода отсоединилась от consul, то она вновь зарегистрируется, по умолчанию 60).

Обновление AppSec.Hub (UI/Core) в Docker

  1. Остановите AppSec.Hub.

    cd /opt/apphub
    sudo docker-compose down
    
  2. В конфигурационном файле /opt/apphub/.env (см. «Приложение 1. Конфигурационный файл .env») укажите новые версии образов:

    hub_core_version=2025.2.1
    hub_ui_version=2025.2.1
    hub_air_version=2025.2.1
    hub_db_version=2025.2.1
    hub_gateway_version=2025.2.1
    hub_issue_rule_version=2025.2.1
    hub_issue_version=2025.2.1
    hub_sso_version=2025.2.1
    hub_metrics_version=2025.2.1
    hub_metrics_bridge_version=2025.2.1
    hub_pipeline_version=2025.2.1      
    rabbitmq_version=3.13-management
    # hub-pipeline-agent - указывается в этом файле только в случае установки AppSec.Hub и сервиса hub-pipeline на одном хосте
    # если на разных - то в своем .env файле на отдельной ноде
    hub_pipeline_agent_version=2025.2.1
    

    Примечание

    При установке AppSec.Hub и Jenkins на разных хостах сервис hub-pipelne-agent при установке должен быть установлен на отдельной ноде. В этом случае значение hub_pipeline_agent_version должно быть указано и обновлено только в файле .env в директории /opt/pipeline на отдельной ноде.

  3. В файл .env (см. «Приложение 1. Конфигурационный файл .env») добавьте следующие параметры:

    LOGS_LIFETIME_DAYS="30"
    ARCHIVE_LIFETIME_DAYS="3"
    SCHEDULER_INTERVAL_HOURS="24"
    CONSUL_SCHEDULER_INTERVAL_MINUTES="60"
    CUSTOM_CA_PATH=<путь до самоподписанного сертификата, например, /app/custom_ca.crt>
    

    Значения параметров:

    • LOGS_LIFETIME_DAYS - логи хранятся в течение указанного количества дней, а затем удаляются (по умолчанию 30).
    • ARCHIVE_LIFETIME_DAYS - архивы хранятся в течение указанного количества дней, а затем удаляются (по умолчанию 3).
    • SCHEDULER_INTERVAL_HOURS - интервал запуска инструмента очистки, как часто будет запускаться проверка на возраст логов и архивов (по умолчанию 24, т.е. проверка на удаление производится один раз в 24 часа).
    • CONSUL_SCHEDULER_INTERVAL_MINUTES - интервал запуска проверки регистрации в consul (если нода отсоединилась от consul, то она вновь зарегистрируется, по умолчанию 60).
    • CUSTOM_CA_PATH - путь до самоподписанного сертификата, который можно добавлять в агенты сканирования для того, чтобы можно было интегрироваться со сканирующими инструментами во внутреннем контуре (например, /app/custom_ca.crt). Этот параметр является опциональным.
  4. Добавьте в файл config/hub-core/app.properties следующую строку (см. «Приложение 4. Конфигурационный файл app.properties») следующую строку, где указывается ограничение на количество пользователей Jira (если задать значение -1, ограничений не будет):

    hub.jira.users.limit=${jira.users.limit:-1}
    
  5. В конфигурационном файле docker-compose.yml для AppSec.Hub (см. «Приложение 9. Пример docker-compose.yml для контейнера AppSec.Hub») добавьте выделенные строки для сервиса hub-pipeline:

    hub-pipeline:
      image: registry.appsec.global/appsechub/hub-pipeline:${hub_pipeline_version}
      container_name: hub-pipeline
      environment:
        - PG_USER=postgres
        - PGPASSWORD=${pgsql_admin_password}
        - PG_URL=${pgsql_url}
        - HUB_URL=${HUB_URL}
        - TZ=Europe/Moscow
        - CONSUL_HOST=http://consul
        - CONSUL_PORT=8500
        - CONSUL_TOKEN=${CONSUL_TOKEN}
        - DB_URL=jdbc:postgresql://${pgsql_url}/${hub_db_name}
        - HUBAPP_USERNAME=hubapp
        - HUBAPP_PASSWORD=${hub_app_password}
        - RABBITMQ_HOST=${RABBITMQ_HOST}
        - RABBITMQ_AMQP_PORT=${RABBITMQ_AMQP_PORT}
        - RABBITMQ_USERNAME=${RABBITMQ_USERNAME}
        - RABBITMQ_PASSWORD=${RABBITMQ_PASSWORD}
        - ARCHIVE_LIFETIME_DAYS=${ARCHIVE_LIFETIME_DAYS}
        - LOGS_LIFETIME_DAYS=${LOGS_LIFETIME_DAYS}
        - SCHEDULER_INTERVAL_HOURS=${SCHEDULER_INTERVAL_HOURS}
        - CONSUL_SCHEDULER_INTERVAL_MINUTES=${CONSUL_SCHEDULER_INTERVAL_MINUTES}
      cpu_shares: 768
      deploy:
          resources:
              limits:
                  memory: 1000M
                  pids: 400
    
  6. В случае использования самоподписных сертификатов в агентах сканирования, в файле docker-compose.yml для каждого агента добавьте выделенную строку и укажите в ней свой путь до самоподписанного сертификата:

    hub-pipelne-agent-node-1:
        image: registry.appsec.global/appsechub/hub-pipeline-agent:${hub_pipeline_agent_version}
        container_name: hub-pipeline-agent-node-1
        ...
        volumes:
            - ./ssh-pub-keys-all:/home/ubuntu/.ssh
            - /etc/localtime:/etc/localtime
            - /etc/timezone:/etc/timezone
            - ./certs:/tmp/certs
            # В строке ниже замените /app/custom_ca.crt на свой путь до самоподписанного сертификата
            - ./custom_cert/custom_ca.crt:/app/custom_ca.crt
        restart: on-failure:5
        ...
    
  7. Загрузите новые версии контейнеров. Для этого в папке, указанной при установке (по умолчанию — /opt/apphub), выполните следующую команду.

    docker-compose pull
    
  8. После загрузки образов запустите систему.

    docker-compose up -d
    

Обновление AppSec.Hub Engine (Jenkins)

Важно!

Начиная с версии 2024.4.1, если планируется использование инструментов PT Application Inspector или CodeScoring, необходимо подготовить Docker-образ по инструкции, приведенной в разделе «Добавление в Docker-образ hub-engine агентов Johnny и PT AISA».

  1. Остановите Jenkins.

    cd /opt/jenkins
    sudo docker-compose down
    
  2. Укажите новые версии образов в файле .env.

    hub_engine_manager_version=2025.2.1
    hub_engine_version=2025.2.1
    
  3. Загрузите новые версии контейнеров.

    docker-compose pull
    
  4. После загрузки образов запустите систему.

    docker-compose up -d
    
К началу