Обновление системы
Полноценное обновление системы происходит в несколько этапов:
Обновление минимально необходимого набора пакетов на узле развёртывания.
Обновление узла развёртывания (не требуется при минорных обновлениях, например, установки патчей безопасности).
Настройка репозиториев
Настройте DNF-репозитории на узле развёртывания.
Для этого необходимо создать файл с расширением .repo в директории /etc/yum.repos.d/ на узле развёртывания.
Добавьте в него разделы с именем репозитория, URL-адресом и ключом GPG. Например, для репозитория new_moncloud_release:
[new_moncloud_release]
name=new_moncloud_release
type=rpm-md
baseurl=http://moncloud-release:82/main/
gpgcheck=1
gpgkey=http://moncloud-release:82/main/repodata/repomd.xml.key
enabled=0
[new_moncloud_release_imagedata]
name=new_moncloud_release
type=rpm-md
baseurl=http://moncloud-release:82/main/imagedata/
gpgcheck=1
gpgkey=http://moncloud-release:82/main/imagedata/repodata/repomd.xml.key
enabled=0
Примечание
Имя репозитория может быть любым. Здесь и далее в примерах используется имя new_moncloud_release.
Внимание
Обязательно настройте два раздела репозитория: new_moncloud_release и new_moncloud_release_imagedata.
Список уже заведённых реп можно посмотреть через команду:
sudo dnf repolist --all
Статус репозитория при этом не важен, если вы указываете репу new_moncloud_release,
то все репозитории явным образом отключаются и включаются только new_moncloud_release и new_moncloud_release_imagedata
Обновление минимально необходимого набора пакетов на узле развёртывания
Для обновления DeckCrew и зависимых пакетов на узле развёртывания выполните команду дважды:
dctl update packages --repo new_moncloud_release
Внимание
Команда обновления пакетов должна выполняться дважды, так как зависимости DeckCrew могут отличаться между релизами.
Для обновления образов физических узлов и контейнеров, хранящихся в реестре узла развёртывания, выполните:
dctl update images --repo new_moncloud_release
dctl update registry --repo new_moncloud_release
См. также
Обновление узла развёртывания
Примечание
Не требуется при обновлении OpenStack или Ceph.
Запустите полное обновление узла развёртывания:
dctl update undercloud --repo new_moncloud_release
См. также
Бэкап данных
Сделайте бэкап данных обновляемого развёртывания:
dctl instance backup <deploy_name> --all
См. также
Обновление пакетов развёртывания
Для обновления пакетов на узлах развёртываний выполните команду:
dctl instance update --packages <deploy_name> --role <role_name> --repo new_moncloud_release
См. также
Обновление скриптов развёртывания
Обновите скрипты развёртывания вашего облака или хранилища. Для этого запустите обновление шаблонов развёртывания:
dctl instance update --templates <deploy_name>
В случае возникновения ошибок ребейза зайдите в указанную в ошибке директорию:
cd /etc/deckcrew/templates/<deploy_name>-<deploy_type>-update
и выполните успешный ребейз.
Внимание
При обновлении шаблонов возможны конфликты. Если вы не уверены в правильности действий, рекомендуем обратиться к разработчикам Moncloud за консультацией.
Подсказка
Используйте git команды для ребейза, а не команды dctl. В противном случае вы можете потерять изменения в шаблонах.
Список полезных команд git для ребейза:
git status
git rebase --continue
При конфликтах в файлах паролей, сохраняйте уже назначенные пароли, а не генерируйте новые.
Далее запустите команду обновления шаблонов с флагом --finish:
dctl instance update --templates <deploy_name> --finish
См. также
Обновление сервисов
Запустите деплой сервисов OpenStack или Ceph на узлах развёртывания при помощи CLI или TUI.
Например:
dctl instance deploy <deploy_name> services
Обновление контейнеров
Реестр образов контейнеров находится на узле развёртывания на порту 8787.
Чтобы обновить один или несколько образов в реестре, используйте команду skopeo, установленную на узле развёртывания.
Например, для обновления образа openstack-nova-api выполните команду:
skopeo copy --src-tls-verify=false \
docker://acloud-obs.intra.acloud.ru/acloud/staging/containers/containers/acloud/openstack-nova-api:latest \
docker://<undercloud_ip>:8787/acloud/openstack-nova-api:latest
В зависимости от того, как контейнер управляется, способ его обновления может отличаться:
простые контейнеры, не управляемые сервисом Pacemaker,
сложные контейнеры, управляемые сервисом Pacemaker, а именно:
cinder-volume
rabbitmq
redis
haproxy
mariadb
Для простых контейнеров используйте команду dctl для пересоздания контейнера на всех узлах управления:
dctl instance update demo --container nova_api --role Controller
или на одном узле, например:
dctl instance update demo --container nova_api --host demo-controller-0
Для сложных контейнеров воспользуйтесь командой:
dctl instance update demo --pcs-service SERVICE_NAME
См. также
Обновление с добавлением SSL/TLS
Проведите настройку SSL/TLS согласно инструкции
Если первоначально развёртывание было создано без SSL/TLS, то для добавления SSL/TLS необходимо зайти на один из узлов управления и выполнить:
sudo pcs resource bundle update haproxy-bundle storage-map add \
source-dir=/etc/pki/tls/private/overcloud_endpoint.pem \
target-dir=/etc/pki/tls/private/overcloud_endpoint.pem \
options=ro