Обновление LCM ks2025.1.1 → ks2025.2.5¶
Обновление LCM выполняется в два этапа:
Обновление LCM с версии ks2025.1.1 на ks2025.2.2.
Установка пакета обновления ks2025.2.5.
Обновление LCM ks2025.1.1 → ks2025.2.2¶
Важно
Все команды на LCM-узле выполняются под пользователем root.
Убедитесь, что в точке монтирования / имеется более 200 Гб свободного пространства. Это необходимо для успешного выполнения обновления.
Убедитесь, в наличии архива инсталлятора installer-ks2025.1.1-sberlinux-offline.tgz.
Загрузите и подготовьте пакет обновления:
Зайдите на LCM-узел по SSH.
Загрузите архив
upgrade-ks2025.2.2-sberlinux.tgzв папку/installer/update.Убедитесь, что в этой папке нет других файлов или папок, при необходимости удалите их.
Замените в файле
/installer/config/settingsстрокуexport RELEASE=ks2025.1.1-sberlinuxнаexport RELEASE=ks2025.2.2-sberlinux.
Откройте веб-интерфейс развернутого GitLab.
Откройте проект project_k / services / upgrade.
Создайте новый пайплайн: .
В открывшемся окне укажите значение параметра
UPGRADE_URL— URL архива с обновлением.Запустите пайплайн New pipeline.
Запустите задачу update.
Дождитесь завершения выполнения операции.
Замените в файле
/installer/config/settingsстрокуexport RELEASE=ks2025.1.1-sberlinuxнаexport RELEASE=ks2025.2.2-sberlinux.
Запустите пайплайн обновления:
Откройте веб-интерфейс развёрнутого GitLab.
Перейдите в репозиторий project_k / deployments / bifrost и удалите его. Для этого перейдите в и нажмите Delete project.
Перейдите в репозиторий project_k / deployments / region1 и удалите его. Для этого перейдите в и нажмите Delete project.
Перейдите в репозиторий project_k / services / upgrade.
Перейдите в раздел .
Установите значение Timeout —
5h.Запустите пайплайн New pipeline по умолчанию. Дождитесь его завершения.
Если пайплайн завершается с ошибкой, то:
Повторно загрузите архив
upgrade-ks2025.2.2-sberlinux.tgzв папку/installer/update.Повторно запустите пайплайн по умолчанию и дождитесь его завершения.
Восстановите пароли доступа NetBox перед проведением обновления:
Зайдите на LCM-узел по SSH.
Перейдите в директорию с архивом инсталлятора.
Извлеките из архива инсталлятора
installer-ks2025.1.1-sberlinux-offline.tgzфайлыinstaller/netbox-docker/env/*.env:# tar -xzvf installer-ks2025.1.1-sberlinux-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
Откройте и измените файл
compose.yamlв секцииnginxдобавьте новый volume:volumes: - /installer/data/nginx/repo:/var/www/repository/sberlinux
Откройте и измените файл
/installer/data/nginx/nginx.confв секцииserverдля Nexus добавьте новыйlocation:location /repository/sberlinux { index index.html index.htm; root /var/www; autoindex on; }
Перезапустите контейнер:
# docker restart nginx
Зайдите в веб-интерфейс Nexus и примите лицензионное соглашение.
Зайдите на LCM-узел по SSH и выполните следующие команды:
# 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"
Обновите NetBox, для этого зайдите на LCM-узел по SSH и выполните команды, приведенные ниже.
# sed -i "/netbox.dump/d" $CFG_HOME/netbox-compose.yml # 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.
Выполните команду:
# sed -i "s|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE-17.8.7-ce.0|" compose.yamlОткройте и измените файл
compose.yaml:
В секции
GITLAB_OMNIBUS_CONFIGизмените значениеgitlab_rails['databases']['ci']['enable']наtrue.В секцию
GITLAB_OMNIBUS_CONFIG `` добавьте значение ``gitlab_rails['packages_enabled'] = false.Выполните команду:
# docker compose -f $CFG_HOME/compose.yaml up -d gitlabВ случае ошибок доступа к файлам, выполните команду:
# docker exec -it gitlab update-permissionsДождитесь когда откроется страница
https://ks-lcm.cloud.itkey.com/admin/background_migrations.Дождитесь завершения всех задач на этой странице.
Обновите GitLab до версии 17.11.7-ce.0:
Зайдите на LCM-узел по SSH.
Выполните команды:
# 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|" compose.yaml # docker compose -f $CFG_HOME/compose.yaml up -d gitlabДождитесь когда откроется страница
https://ks-lcm.cloud.itkey.com/admin/background_migrations.Дождитесь завершения всех задач на этой странице.
Обновите GitLab до версии ks2025.2.2:
Зайдите на LCM-узел по SSH.
Выполните команду:
# sed -i "s|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE-17.11.7-ce.0|\$NEXUS_FQDN/project_k/lcm/gitlab:\$RELEASE|" compose.yamlОткройте и измените файл
/installer/data/gitlab-runner/config.toml.
В секции
[runners.docker]измените значение параметраnetwork_modeсinstallerнаhostи в параметреhelper_imageзамените значение наks2025.2.2.В секции
[[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://ks-lcm.cloud.itkey.com/admin/background_migrations.Дождитесь завершения всех задач на этой странице.
(Опционально) Удалите докер-образа LCM старого релиза, выполнив команду:
# docker image prune -aЗайдите в веб-интерфейс GitLab.
Перейдите в группу
project_k.Перейдите в раздел .
Изменить значения параметра
vault_addrнаhttps://vault.DOMAIN. Действие нужно выполнять, если подключен внутренний Vault.
В новой версии GitLab по умолчанию доступ с использованием токена между проектами запрещен. Обновите настройку доступа между проектами GitLab, выполнив перечисленные действия для каждого региона:
Зайдите в веб-интерфейс GitLab.
В репозитории
project_k/ciи в репозиторииproject_k/keystackв разделе нажмите кнопку Add > Group or Project, введитеproject_k/deployments/<имя региона>(добавьте все регионы, если их больше чем один).
Выполните команды на узле 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
Установка пакета обновления ks2025.2.5¶
Загрузите и подготовьте пакет обновления:
Зайдите на LCM-узел по SSH под пользователем root.
Загрузите архив
upgrade-ks2025.2.5-sberlinux.tgzв папку/installer/update.Убедитесь, что в этой папке нет других файлов или папок, при необходимости удалите их.
Откройте веб-интерфейс развернутого GitLab.
Откройте проект project_k / services / upgrade.
Создайте новый пайплайн: .
В открывшемся окне укажите значение параметра
UPGRADE_URL— URL архива с обновлением.Запустите пайплайн New pipeline.
Запустите задачу update.
Дождитесь завершения выполнения операции.
Запустите пайплайн обновления:
Откройте веб-интерфейс развёрнутого GitLab.
Перейдите в репозиторий project_k / services / upgrade.
Запустите пайплайн New pipeline по умолчанию. Дождитесь его завершения.
Если пайплайн завершается с ошибкой, то:
Повторно загрузите архив
upgrade-ks2025.2.5-sberlinux.tgzв папку/installer/update.Повторно запустите пайплайн по умолчанию и дождитесь его завершения.