Обновление LCM ks2024.4 → ks2025.1.1

Обновление с ks2024.4 на следующую по порядку версию гарантирует, что все новые возможности будут внедрены правильно. Данный этап можно считать обязательной частью обновления LCM-узла.

Загрузите и подготовьте пакет обновления:

  1. Зайдите на LCM-узел по SSH.

  2. Загрузите архив upgrade-ks2025.1.1-sberlinux.tgz в папку /installer/update.

  3. Убедитесь, что в этой папке нет других файлов или папок, при необходимости удалите их.

  4. Убедитесь, что в точке монтирования / имеется более 200 Гб свободного пространства. Это необходимо для успешного выполнения обновления.

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

    # git config --global --add safe.directory '*'
    
  6. Замените в файлах ~/installer/settings и /installer/settings строку export RELEASE=ks2024.4-sberlinux на export RELEASE=ks2025.1.1-sberlinux.

Запустите пайплайн обновления:

  1. Откройте веб-интерфейс развёрнутого GitLab.

  2. Перейдите в репозиторий project_k / deployments / bifrost и удалите его. Для этого перейдите в Project settings > Advanced и нажмите Delete project.

  3. Перейдите в репозиторий project_k / deployments / region1 и удалите его. Для этого перейдите в Project settings > Advanced и нажмите Delete project.

  4. Перейдите в репозиторий project_k / services / upgrade.

  5. Перейдите в раздел Settings > CI/CD > General pipelines.

  6. Установите значение Timeout5h.

  7. Запустите пайплайн Run pipeline по умолчанию. Дождитесь его завершения.

  8. Если пайплайн завершается с ошибкой, то:

    1. Повторно загрузите архив upgrade-ks2025.1.1-<sberlinux/ubuntu>.tgz в папку /installer/update.

    2. Повторно запустите пайплайн по умолчанию и дождитесь его завершения.

Восстановите пароли доступа NetBox перед проведением обновления:

  1. Зайдите на LCM-узел по SSH.

  2. Извлеките из архива инсталлятора файлы installer/netbox-docker/env/*.env.

  3. Переместите эти файлы в /installer/data/netbox/env/ на LCM-узле, заменив существующие.

Обновите файлы Docker и перезапустите сервисы:

  1. Зайдите на LCM-узел по SSH и выполните команды, приведенные ниже.

    # cd /installer/config
    # source settings
    # sed -i "/netbox.dump/d" $CFG_HOME/netbox-compose.yml
    # chown -R 994:994 $NETBOX_HOME/{postgres,redis,redis-cache}
    # docker compose -f $CFG_HOME/netbox-compose.yml up -d
    # docker compose -f $CFG_HOME/compose.yaml up -d nexus nginx vault
    
  2. Зайдите в веб-интерфейс Nexus и примите лицензионное соглашение.

  3. Зайдите на LCM-узел по SSH и выполните следующие команды:

    # docker compose -f $CFG_HOME/compose.yaml exec vault /bin/sh -c "cat /vault/config/chain-ca.pem >> /etc/pki/ca-trust/source/anchors/ca.crt; update-ca-trust"
    
    # docker restart vault
    # docker compose -f $CFG_HOME/compose.yaml exec vault /bin/sh -c "vault operator unseal"
    # docker compose -f $CFG_HOME/compose.yaml exec vault /bin/sh -c "vault login"
    

Обновление GitLab необходимо делать в несколько этапов. Сначала обновите GitLab до версии 17.3.7-ce.0:

  1. Зайдите на LCM-узел по SSH.

  2. Выполните команды:

    # sed -i "s|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE-17.3.7-ce.0|" compose.yaml
    # docker compose -f $CFG_HOME/compose.yaml up -d gitlab
    
  3. Дождитесь когда откроется страница https://ks-lcm.cloud.itkey.com/admin/background_migrations.

  4. Дождитесь завершения всех задач на этой странице.

Обновите GitLab до версии 17.5.5-ce.0:

  1. Зайдите на LCM-узел по SSH.

  2. Выполните команды:

    # sed -i "s|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE-17.3.7-ce.0|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE-17.5.5-ce.0|" compose.yaml
    # docker compose -f $CFG_HOME/compose.yaml up -d gitlab
    
  3. Дождитесь когда откроется страница https://ks-lcm.cloud.itkey.com/admin/background_migrations.

  4. Дождитесь завершения всех задач на этой странице.

Обновите GitLab до версии ks2025.1.1:

  1. Зайдите на LCM-узел по SSH.

  2. Выполните команды:

    # sed -i "s|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE-17.5.5-ce.0|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE|" compose.yaml
    # docker compose -f $CFG_HOME/compose.yaml up -d gitlab gitlab-runner
    
  3. Контейнер с GitLab поднимается очень долго. Проверить состояние запуска контейнера можно с помощью команды:

    # docker logs gitlab -f -n 100
    
  4. Дождитесь когда откроется страница https://ks-lcm.cloud.itkey.com/admin/background_migrations.

  5. Дождитесь завершения всех задач на этой странице.

Выполните команды на узле LCM:

  1. Зайдите на LCM-узел по SSH и выполните команды:

    # cd /installer/config
    # source settings
    # sed -i "s|DB_PASSWORD=.*|DB_PASSWORD=netbox_db_password|" $NETBOX_HOME/env/netbox.env
    # sed -i "s|REDIS_CACHE_PASSWORD=.*|REDIS_CACHE_PASSWORD=netbox_redis_cache_password|" $NETBOX_HOME/env/netbox.env
    # sed -i "s|REDIS_PASSWORD=.*|REDIS_PASSWORD=netbox_redis_password|" $NETBOX_HOME/env/netbox.env
    # sed -i "s|SUPERUSER_PASSWORD=.*|SUPERUSER_PASSWORD=netbox_admin_password|" $NETBOX_HOME/env/netbox.env
    # sed -i "s|AUTH_LDAP_BIND_PASSWORD: .*|AUTH_LDAP_BIND_PASSWORD: \"LDAP-BIND-PASSWORD\"|" $NETBOX_HOME/env/netbox.env
    # sed -i "s|POSTGRES_PASSWORD=.*|POSTGRES_PASSWORD=netbox_db_password|" $NETBOX_HOME/env/postgres.env
    # sed -i "s|REDIS_PASSWORD=.*|REDIS_PASSWORD=netbox_redis_password|" $NETBOX_HOME/env/redis.env
    # sed -i "s|REDIS_PASSWORD=.*|REDIS_PASSWORD=netbox_redis_cache_password|" $NETBOX_HOME/env/redis-cache.env