Обновление LCM ks2025.1.1 → ks2025.2.2¶
Обновление с ks2025.1.1 на следующую по порядку версию гарантирует, что все новые возможности будут внедрены правильно. Данный этап можно считать обязательной частью обновления LCM-узла.
Загрузите и подготовьте пакет обновления:
Зайдите на LCM-узел по SSH.
Загрузите архив
upgrade-ks2025.2.2-sberlinux.tgzв папку/installer/update.Убедитесь, что в этой папке нет других файлов или папок, при необходимости удалите их.
Убедитесь, что в точке монтирования
/имеется более 200 Гб свободного пространства. Это необходимо для успешного выполнения обновления.Замените в файлах
~/installer/settingsи/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.Запустите пайплайн Run pipeline по умолчанию. Дождитесь его завершения.
Если пайплайн завершается с ошибкой, то:
Повторно загрузите архив
upgrade-ks2025.2.2-sberlinux.tgzв папку/installer/update.Повторно запустите пайплайн по умолчанию и дождитесь его завершения.
В Vault появится новый пароль по адресу
deployments/<GITLAB_FQDN>/secrets/accounts—gitlab_ks_admin_password. В случае использования клиентского Vault, перенести его туда по тому же адресу.
Восстановите пароли доступа NetBox перед проведением обновления:
Зайдите на LCM-узел по SSH.
Извлеките из архива инсталлятора файлы
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; }
Зайдите в веб-интерфейс 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\n update-ca-certificates --fresh > /dev/null\n ".Выполните команду:
# 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 / deployments / <имя региона>.
Перейдите в раздел .
Разрешите использование job-токена из всех проектов, для этого включите опцию All groups and projects.
Выполните команды на узле 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