Обновление LCM ks2025.1.1 → ks2026.1¶
Важно
Все команды на LCM-узле выполняются под пользователем root.
Убедитесь, что в точке монтирования / имеется более 200 Гб свободного пространства. Это необходимо для успешного выполнения обновления.
Убедитесь, в наличии архива инсталлятора installer-ks2025.1.1-{sberlinux|ubuntu}-offline.tgz. Данный архив необходим для восстановления шаблонов переменных окружения для NetBox installer/netbox-docker/env/*.env.
Загрузите, подготовьте пакет обновления и запустите пайплайн обновления:
Зайдите на LCM-узел по SSH.
Загрузите архив
upgrade-ks2026.1-{sberlinux|ubuntu}.tgzв папку/installer/update.Убедитесь, что в этой папке нет других файлов или папок, при необходимости удалите их.
Замените в файле
/installer/config/settingsстрокуexport RELEASE=ks2025.1.1-{sberlinux|ubuntu}наexport RELEASE=ks2026.1-{sberlinux|ubuntu}.Откройте веб-интерфейс развёрнутого GitLab.
Перейдите в репозиторий project_k / deployments / bifrost и удалите его. Для этого перейдите в и нажмите Delete project.
Перейдите в репозиторий project_k / deployments / region1 и удалите его. Для этого перейдите в и нажмите Delete project.
Перейдите в репозиторий project_k / services / upgrade.
Перейдите в раздел .
Установите значение Timeout —
5h.Создайте новый пайплайн: .
Запустите пайплайн New pipeline.
Дождитесь завершения выполнения операции.
Зайдите на LCM-узел по SSH.
Замените в файле
/installer/config/settingsстрокуexport RELEASE=ks2025.1.1-{sberlinux|ubuntu}наexport RELEASE=ks2026.1-{sberlinux|ubuntu}.Откройте веб-интерфейс развернутого GitLab.
Перейдите в репозиторий project_k / deployments / bifrost и удалите его. Для этого перейдите в и нажмите Delete project.
Перейдите в репозиторий project_k / deployments / region1 и удалите его. Для этого перейдите в и нажмите Delete project.
Перейдите в репозиторий project_k / services / upgrade.
Перейдите в раздел .
Установите значение Timeout —
5h.Создайте новый пайплайн: .
В открывшемся окне укажите значение параметра
UPGRADE_URL— URL архива с обновлением.Запустите пайплайн New pipeline.
Запустите задачу update.
Дождитесь завершения выполнения операции.
Если пайплайн завершается с ошибкой, выполните следующие действия:
Повторно загрузите архив
upgrade-ks2026.1-{sberlinux|ubuntu}.tgzв папку/installer/update.При повторном запуске необходимо убедится, что значение переменной
KEYSTACK_RELEASEравноks2025.1.1.Если повторный запуск вызывает ошибку на этапе
setup:Откройте и измените файл
/installer/data/gitlab-runner/config.toml:
В секции
[runners.docker]измените значение параметраnetwork_modeсinstallerнаhostи в параметреhelper_imageзамените значение наks2026.1.В секции
[[runners]]добавьте параметрpre_build_script = " cp /etc/gitlab-runner/certs/ca.crt /usr/local/share/ca-certificates/ca.crt || true\n update-ca-certificates --fresh > /dev/null || true\n ".Перезапустите
gitlab-runner, выполнив команду:# docker restart gitlab-runnerОткройте веб-интерфейс развернутого GitLab.
Перейдите в репозиторий project_k / services / upgrade.
Создайте новый пайплайн: .
Запустите пайплайн New pipeline.
Запустите задачу update.
Дождитесь завершения выполнения операции.
В Vault появится новый пароль gitlab_ks_admin_password по пути secret_v2 / deployments / <LCM FQDN> / secrets / accounts. В случае использования клиентского Vault перенесите новый пароль gitlab_ks_admin_password по тому же пути.
Восстановите пароли доступа NetBox перед проведением обновления:
Зайдите на LCM-узел по SSH.
Перейдите в директорию с архивом инсталлятора.
Извлеките из архива инсталлятора
installer-ks2025.1.1-{sberlinux|ubuntu}-offline.tgzфайлыinstaller/netbox-docker/env/*.env:# tar -xzvf installer-ks2025.1.1-{sberlinux|ubuntu}-offline.tgz installer/netbox-docker/env/*.env
Если пароли для сервисов были изменены, то укажите актуальные значения в этих файлах.
Переместите эти файлы в
/installer/data/netbox/env/на LCM-узле, заменив существующие.
Обновите файлы Docker и перезапустите сервисы:
Зайдите на LCM-узел по SSH и выполните команды, приведенные ниже.
# cd /installer/config # source settings # docker compose -f $CFG_HOME/compose.yaml up -d nexus nginx vault
# docker compose -f $CFG_HOME/compose.yaml exec vault /bin/sh -c "cat /vault/config/chain-ca.pem >> /etc/ssl/certs/ca-certificates.crt"
# 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"
Зайдите в веб-интерфейс Nexus и примите лицензионное соглашение.
Обновите NetBox. Для этого зайдите на LCM-узел по SSH и выполните команды, приведенные ниже.
# docker exec netbox-postgres pg_dumpall -U netbox > dump.sql # docker compose -f $CFG_HOME/netbox-compose.yml down # mv $NETBOX_HOME/postgres/ $NETBOX_HOME/postgres-old/ # mkdir /installer/data/netbox/postgres/ # chown -R 994:994 $NETBOX_HOME/{postgres,redis,redis-cache} # docker compose -f $CFG_HOME/netbox-compose.yml up -d postgres # cp dump.sql $NETBOX_HOME/postgres/ # chown -R 994:994 $NETBOX_HOME/postgres/dump.sql # docker exec -ti netbox-postgres bash # cd /var/lib/postgresql/data/ # psql -U netbox < dump.sql # exit # docker compose -f $CFG_HOME/netbox-compose.yml up -d # rm -rf $NETBOX_HOME/postgres-old/
Обновление GitLab необходимо делать в несколько этапов. Сначала обновите GitLab до версии 17.8.7-ce.0:
Зайдите на LCM-узел по SSH.
Выполните команды:
# source /installer/config/settings # sed -i "s|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE-17.8.7-ce.0|" $CFG_HOME/compose.yamlВыполните команду:
# docker compose -f $CFG_HOME/compose.yaml up -d gitlabВ случае ошибок доступа к файлам выполните команду:
# docker exec -it gitlab update-permissionsДождитесь открытия страницы
https://<LCM FQDN>/admin/background_migrations.Дождитесь завершения всех задач на этой странице. Если задач нет, можете приступать к следующему шагу.
Обновите GitLab до версии 17.11.7-ce.0:
Зайдите на LCM-узел по SSH.
Выполните команды:
# source /installer/config/settings # sed -i "s|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE-17.8.7-ce.0|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE-17.11.7-ce.0|" $CFG_HOME/compose.yaml # docker compose -f $CFG_HOME/compose.yaml up -d gitlabДождитесь открытия страницы
https://<LCM FQDN>/admin/background_migrations.Дождитесь завершения всех задач на этой странице. Если задач нет, можете приступать к следующему шагу.
Обновите GitLab до версии ks2026.1:
Зайдите на LCM-узел по SSH.
Выполните команду:
# sed -i "s|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE-17.11.7-ce.0|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE|" $CFG_HOME/compose.yamlОткройте и измените файл
/installer/data/gitlab-runner/config.toml.
В секции
[runners.docker]измените значение параметраnetwork_modeсinstallerнаhostи в параметреhelper_imageзамените значение наks2026.1.В секции
[[runners]]добавьте параметрpre_build_script = " cp /etc/gitlab-runner/certs/ca.crt /usr/local/share/ca-certificates/ca.crt || true\n update-ca-certificates --fresh > /dev/null || true\n ".Перезапустите gitlab-runner, выполнив команду:
# docker restart gitlab-runnerВыполните команду:
# docker compose -f $CFG_HOME/compose.yaml up -d gitlab gitlab-runnerВ случае ошибок доступа к файлам выполните команду:
# docker exec -it gitlab update-permissionsКонтейнер с GitLab поднимается очень долго. Проверить состояние запуска контейнера можно с помощью команды:
# docker logs gitlab -f -n 100Дождитесь открытия страницы
https://<LCM FQDN>/admin/background_migrations.Дождитесь завершения всех задач на этой странице. Если задач нет, можете приступать к следующему шагу.
(Опционально) Удалите докер-образ LCM старого релиза, выполнив команду:
# docker image prune -a
В случае если подключен внутренний Vault, дополнительно понадобится изменить значение параметра vault_addr. Для этого:
Зайдите в веб-интерфейс GitLab.
Перейдите в группу
project_k.Перейдите в раздел .
Измените значения параметра
vault_addrнаhttps://vault.<DOMAIN>.
В новой версии GitLab по умолчанию доступ с использованием токена между проектами запрещен. Обновите настройку доступа между проектами GitLab, выполнив перечисленные действия для каждого региона:
Зайдите в веб-интерфейс GitLab.
Для каждого репозитория (
project_k/etc) в разделе нажмите кнопку Add > Group or Project и добавьте группуproject_k.
Выполните команды на узле LCM:
Зайдите на 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