Перейти к основному контенту

Замена одного из компонентов JumpServer на другую версию

JumpServer представляет из себя набор контейнеров докер, которые взаимодействуют друг с другом. Иногда может потребоваться замена одного из контейнеров на другую версию, например
- В новой версии JumpServer появляется проблема с каким-то модулем которой не было в прошлой версии.
- Вендор выпускает новую версию контейнера для исправления проблемы, чтобы исправить ее не дожидаясь выхода новой версии.
Примечание: рекомендуется это выполнять только после рекомендации от технической поддержки(то есть от нас)

Загрузка образа компонента на примере jms_magnus

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

docker images

Если нет, то скачайте нужный образ контейнера в формате, например magnus.tar , файл образа можно получить или из предыдущей установки или попросив его у нас и загрузите его в хранилище образов докера:

docker load -i magnus.tar

Проверьте, что контейнер с нужной версией загрузился в хранилище командой

docker images

Вы увидите два контейнера с одинаковым именем, но с разным TAG, например magnus старой версии v4.10.4-ee

изображение.png

Переключение на другую версию образа

Когда образ контейнера на месте, нужно изменить версию контейнера в compose файле, по умолчанию композ-файлы находятся в папке compose внутри дистрибутива JumpServer. Редактируем соответствующий композ-файл:

nano /opt/jumpserver-ee-v4.10.14-x86_64/compose/magnus.yml

И заменяем параметр image, заменяя переменную ${VERSION}, на версию вашего образа, например v4.10.4-ee:


services:
  magnus:
    image: ${REGISTRY:-registry.fit2cloud.com}/jumpserver/magnus:v4.10.4-ee
    container_name: jms_magnus
    hostname: jms_magnus
    ulimits:
      core: 0
    restart: always
    env_file:
      - ${CONFIG_FILE}
    ports:
      - ${MAGNUS_MYSQL_PORT:-33061}:${MAGNUS_MYSQL_PORT:-33061}
      - ${MAGNUS_MARIADB_PORT:-33062}:${MAGNUS_MARIADB_PORT:-33062}
      - ${MAGNUS_REDIS_PORT:-63790}:${MAGNUS_REDIS_PORT:-63790}
      - ${MAGNUS_POSTGRESQL_PORT:-54320}:${MAGNUS_POSTGRESQL_PORT:-54320}
      - ${MAGNUS_SQLSERVER_PORT:-14330}:${MAGNUS_SQLSERVER_PORT:-14330}
      - ${MAGNUS_ORACLE_PORT:-15210}:${MAGNUS_ORACLE_PORT:-15210}
      - ${MAGNUS_MONGODB_PORT:-27018}:${MAGNUS_MONGODB_PORT:-27018}
    volumes:
      - ${CONFIG_DIR}/certs:/opt/magnus/data/certs
      - ${VOLUME_DIR}/magnus/data:/opt/magnus/data
    healthcheck:
      test: "curl localhost:8088/health || exit 1"
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 10s
    networks:
      - net

Перезапускаем контейнер magnus:

jmsctl restart magnus

Проверяем статус контейнеров, если все сделано верно, вы увидите все контейнеры в статусе (healthy) с одной версией, и ваш контейнер с версией, отличающейся от остальных.