Сопровождение развёртывания
Действия администратора системы после установки
После установки системы можно выполнить несколько действий через dctui. Для этого зайдите во вкладку Cloud Admin Actions в меню развёртывания.
┌───────────────────────────────────────── Cloud Admin Actions ──────────────────────────────────────────┐
│Restart ⏷ Collapse │
│Configure ⏷ Collapse [service] Running processes █
│ galera [restart button] ░
│ neutron ----------------------------------------- ░
│ neutron_ml2 all ░
│ nova_libvirt Compute ░
│ nova Controller ░
│ barbican ----------------------------------------- ░
│ cinder ░
│Extra ⏷ Collapse Controller ░
│ haproxy Pacemaker ░
│ galera-local-connection ----------------------------------------- ░
│ glance ░
│ Controller ░
│ ----------------------------------------- ░
│ horizon ░
│ Controller ░
│ ----------------------------------------- ░
│ ironic ░
│ Controller ░
│ ----------------------------------------- ░
│ keystone ░
│ Controller ░
│ ----------------------------------------- ░
│ memcached ░
│ Controller ░
│ ----------------------------------------- ░
│ michman ░
│ Controller ░
│ ----------------------------------------- ░
│ neutron ░
│ Compute ░
│ Controller ░
│ ----------------------------------------- ░
│ nova ░
│ Compute ░
│ Controller ░
│ ----------------------------------------- ░
│ galera ░
│ Pacemaker ░
│ ----------------------------------------- ░
│ rabbit ░
│ Pacemaker ░
│ ----------------------------------------- ░
│ redis ░
│ Pacemaker ░
│ ----------------------------------------- ░
│ haproxy ░
│ Pacemaker ░
│ ----------------------------------------- ░
│ ovn_dbs ░
│ Pacemaker ░
│ ░
│ < Stop/Ctrl+D > < Cancel/Ctrl+C > │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Вы увидите список разделов:
Restart - перезапуск сервисов
Configure - конфигурация сервисов (без перезапуска сервисов)
Extra - дополнительные плейбуки:
haproxy- конфигурация haproxygalera-local-connection- изменить подключение к galera с VIP адреса на локальный
Изменение состава физических узлов
Добавление узла
Общий порядок действий:
Добавить новый физический узел. Настроить порядок интерфейсов и диск ОС далее, согласно инструкции;
Применить изменения. Выполните операции Provision Nodes, Deploy Services.
На этапе Deploy Services при масштабировании развёртывания типа OpenStack и роли:
Compute: выберите только нулевой контроллер и новый узел вычисления,
Controller/PowerOfThree: выберите все узлы в роли Controller/PowerOfThree соответственно,
Monitoring: выберите только новый узел.
При масштабировании развёртывания типа Ceph выберите нулевой хост и ваш новый узел типа Ceph.
Удаление узла
Общий порядок действий:
Подготовить систему к удалению узла.
Удалить узел из развёртывания.
Удалить узел из системы.
Для подготовки системы к удалению в развёртывании типа Openstack узла:
вычисления: в режиме администратора облака необходимо выключить удаляемый узел.
управления: с удаляемого узла выполните команду:
sudo pcs node maintenance <node-name>
Для удаления узла из развёртывания используйте DeckCrew TUI, зайдите во вкладку Deployment из меню развёртывания, в состав которого входит узел для удаления и нажмите на галку Activate Danger Zone
┌────────────────────────────────────────── Deployment process ──────────────────────────────────────────┐
│ < Refresh/Ctrl+R > │
│ █
│Stack status ░
│ last_action: Validate Templates ░
│ status: DEPLOY_SUCCESS ░
│ ░
│Debug mode ░
│ [ ] No launch. Generate deployment script only ░
│ ░
│Pick deployment action ░
│ (•) Prepare Networks ░
│ ( ) Prepare Virtual IPs ░
│ ( ) Provision Nodes ░
│ ( ) Update Known Hosts ░
│ ( ) Validate Templates ░
│ ( ) Deploy Services ░
│ ░
│ [✓] Activate danger section ░
│ ( ) Update Partition ░
│ (•) Delete Nodes ░
│ ( ) Delete Deployment ░
│ ░
│Set extra settings for deployment action ░
│[ ] test-compute-0 ░
│[ ] test-compute-1 ░
│[ ] test-controller-0 ░
│[ ] test-controller-1 ░
│[ ] test-controller-2 ░
│ ░
│--------------------------------------------------------------------------------------------------------░
│Logs ░
│ ░
│ < Start/Ctrl+A > < Stop/Ctrl+D > < Cancel/Ctrl+C > │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Выберите узлы для удаления и нажмите кнопку Start.
Затем перейдите в меню Roles/Nodes and Networks и удалите ваш узел из списка узлов используя кнопку Delete.
Для удаления узла из системы перейдите в меню управления физическими узлами и удалите узел выбрав его в списке узлов и нажав на кнопку Delete.
Замена узла в облаке
Для замены узла необходимо сначала добавить новый физический узел и настроить его согласно инструкции из Добавления узлов в облако.
Затем перейдите в раздел Roles/Nodes and Networks, удалите узел, который хотите заменить, и добавьте новый узел.
Затем в разделе Deployment выполните Provision Nodes, Update Known Hosts и Deploy Services.
Ручное обновление
Обновление пакетов
Для обновления пакетов системы необходимо использовать менеджер пакетов dnf.
Настройте репозитории для обновления в /etc/yum.repos.d/ на тех узлах, что планируется обновить. Убедитесь, что devel репозитории отключены, и включены репозитории acloud_staging и acloud_staging_imagedata.
Предварительно убедитесь, что версия python3 и glibc не меняются при обновлении пакетов, так как это может привести к поломке системы. Для этого выполните команду:
dnf info python3 glibc
Сравните вывод версии в разделе Available Packages и Installed Packages. Версия должна совпадать по первым двум числам.
Если версии отличаются, обратитесь к разработчикам Moncloud. Например, python3.11.5 можно обновлять до python3.11.6, но до python3.12.0 уже не рекомендуется обновлять.
Обновление контейнеров
Реестр образов контейнеров находится на узле развёртывания на порту 13787. Для обновления всех образов в реестре необходимо обновить (или установить) пакет acloud-registry на узле развёртывания:
sudo dnf update acloud-registry --enablerepo=acloud_staging_imagedata
Для обновления всех контейнеров в системе перейдите к соответствующему разделу документации Обновление Openstack или Обновление узла развёртывания.
Частичное обновление контейнеров
Чтобы обновить один или несколько образов в реестре, используйте команду 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>:13787/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
Для сложных контейнеров необходимо вручную скачать образ контейнера на каждый узел управления и переименовать в cluster.common.tag/<service>:pcmklatest, например:
ssh tripleo-admin@demo-controller-0.ctlplane
sudo podman pull undercloud.ctlplane:13787/acloud/openstack-cinder-volume:latest
sudo podman tag undercloud.ctlplane:13787/acloud/openstack-cinder-volume:latest \
cluster.common.tag/cinder-volume:pcmklatest
Затем перезапустите бандл соответствующий обновлённому образу, например:
sudo pcs resource restart openstack-cinder-volume-podman-0
Убедитесь, что контейнер был успешно обновлён, проверив дату создания контейнера через команду podman ps -a, например:
``podman ps -a | grep cinder-volume``.
**Примечание:** Частичное обновление контейнеров не применимо в тех случаях, когда меняется конфигурация для сервиса.
При обновлении контейнеров nova_virt* необходимо предварительно остановить виртуальные машины на узле с обновляемым контейнером.
Обновление OpenStack
Примечание
Предварительно необходимо остановить виртуальные машины на обновляемом узле, так как при обновлении все контейнеры пересоздаются, то есть будут пересозданы и контейнеры nova_virt*, остановка которых приводит к завершению работы всех запущенных ВМ.
Для начала необходимо сбекапить данные. Не все папки есть на всех узлах облака:
mkdir backups-$(date "+%Y-%m-%d")
cd backups-$(date "+%Y-%m-%d")
sudo rsync -a /var/lib/mysql ./
sudo rsync -a /var/lib/rabbitmq ./
sudo rsync -a /var/lib/openvswitch ./
sudo rsync -a /var/lib/config-data ./
sudo rsync -a /var/lib/kolla ./
sudo rsync -a /var/lib/tripleo-config ./
Последовательность действий:
Обновить пакеты acloud-registry и acloud-images на узле развёртывания:
sudo dnf update acloud-registry acloud-images --enablerepo acloud_staging_imagedata
Запустить
Deploy Servicesиз инсталлятора DeckCrewTUI.
Обновление скриптов развёртывания
На процесс развёртывания влияют пакеты openstack-tripleo-heat-templates, tripleo-ansible и в редких случаях deckcrew и tripleo-common.
Поэтому предварительно обновите необходимые пакеты на узле развёртывания:
sudo dnf update openstack-tripleo-heat-templates \
tripleo-ansible --enablerepo=acloud_staging
При создании развёртывания через инсталлятор dctui или dctl шаблоны копируются из пакета openstack-tripleo-heat-templates в директорию /etc/deckcrew/templates/. Для обновления шаблонов в этой директории выполните следующую команду:
dctl instance update --templates <deploy_name>
В случае возникновения ошибок ребейза зайдите в указанную в ошибке директорию:
cd /etc/deckcrew/templates/<deploy_name>-<deploy_type>-update
и выполните успешный ребейз, после чего запустите команду обновления шаблонов с флагом --finish:
dctl instance update --templates <deploy_name> --finish
Примечание
При обновлении шаблонов могут происходить конфликты обновления. Если вы не уверены, что делаете, то лучше обратитесь к разработчикам moncloud.
Обновление с добавлением 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
Обновление узла развёртывания
Примечание
Не требуется при обновлении OpenStack или Ceph.
Обновление зависит от версий deckcrew и openstack-tripleo-heat-templates.
Обновление системы хранения
(В разработке)