Развёртывание облака

Зайдите в DeckCrew TUI

dctui

Перейдите в Меню развёртывания, затем во вкладку Deployment.

┌────────────────────────────────────────── Deployment process ──────────────────────────────────────────┐
│  < Refresh/Ctrl+R >                                                                                    │
│                                                                                                        █
│Stack status                                                                                            ░
│  last_action: Validate Teamplates                                                                      ░
│  status: DEPLOY_SUCCESS                                                                                ░
│                                                                                                        ░
│Debug mode                                                                                              ░
│  [ ] No launch. Generate deployment script only                                                        ░
│                                                                                                        ░
│Pick deployment action                                                                                  ░
│  (•) Prepare Networks                                                                                  ░
│  ( ) Prepare Virtual IPs                                                                               ░
│  ( ) Provision Nodes                                                                                   ░
│  ( ) Validate Teamplates                                                                               ░
│  ( ) Deploy OpenStack                                                                                  ░
│  ( ) Update Known Hosts                                                                                ░
│                                                                                                        ░
│  [ ] Activate danger section                                                                           ░
│  (•) Update Partition                                                                                  ░
│  ( ) Delete Nodes                                                                                      ░
│  ( ) Delete Deployment                                                                                 ░
│                                                                                                        ░
│Set extra settings for deployment action                                                                ░
│                                                                                                        ░
│--------------------------------------------------------------------------------------------------------░
│Logs                                                                                                    ░
│                                                                                                        ░
│                               < Start/Ctrl+A >          < Stop/Ctrl+D >          < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Сверху отображается статус развёртывания.

Развёртывание состоит из нескольких стадий:

  • Prepare Networks, или Подготовка сети - на этом этапе создаются сети, настроенные ранее.
  • Prepare Virtual IPs, или Подготовка виртуальных IP-адресов - на этом этапе создаются виртуальные IP-адреса, настроенные ранее.
  • Provision Nodes, или Подготовка узлов - на этом этапе при помощи Ironic разворачиваются операционные сети на узлы и настраиваются сети.
  • Validate Teamplates, или Проверка шаблонов - на этом этапе проверяются настройки шаблонов.
  • Deploy OpenStack, или Развёртывание OpenStack - на этом этапе разворачиваются сервисы OpenStack на узлах. Если вы пропустили этап Validate Templates, то укажите в Set extra settings for deployment action параметр Deploy with Stack Update.
  • Update Known Hosts, или Обновление известных хостов - на этом этапе обновляется файл .ssh/known_hosts на узле развёртывания.

Также можно использовать Debug режим, при котором команда для запуска развёртывания не выполняется, а сохраняется в /tmp/deploy-.sh.

После создания сервера статус физического узла меняется с available на active в списке физических серверов.

Нулевое развёртывание

Нулевое развёртывание означает, что Stack status для данного развёртывания отображает пустые значения для всех параметров.

В этом случае необходимо запустить по порядку все Deployment actions на экране по порядку, дождавшись окончания предыдущего.

В случае любых проблем и ошибок на каждом этапе необходимо исправить ошибки и запустить развёртывание заново. Ни один из этапов не может быть пропущен!

Обновление параметров развёртывания

Этот пункт вам подходит, если вы изменили:

  • порядок интерфейсов для узла, участвующего в этом развёртывании
  • диск операционной системы для узла, участвующего в этом развёртывании
  • параметры сети
  • параметры сети для роли
  • состав сервисов для роли
  • сетевой план для роли
  • пароли для сервисов
  • фиксированные IP-адреса
  • настройки опций для сервисов

В этом случае необходимо сначала обновить изменённые параметры в системе узла развёртывания.

Для этого пройдите первый этап Validate Teamplates, затем перейдите к этапу Deploy OpenStack и выполните его.

Удалять уже развёрнутые сети таким образом нельзя!

Обновление контейнеров

Все образы контейнеров хранятся в репозитории на узле развёртывания. Адрес репозитория <hostname>.ctlplane:13787, далее используется undercloud.ctlplane:13787.

Для обновления образов контейнеров используйте команду skopeo. Например, с узла развёртывания выполните команду:

skopeo copy docker://obs:82/acloud/openstack-nova-compute:latest \ 
  docker://undercloud.ctlplane:13787/acloud/openstack-nova-compute:latest

Этой командой обновляются образы контейнеров в реестре на узле развёртывания. Для того чтобы загрузить обновлённые образы на узлы облака, необходимо зайти на узел облака и выполнить команду:

sudo podman pull undercloud.ctlplane:13787/acloud/openstack-nova-compute:latest

Для пересоздания контейнеров на узлах необходимо выполнить Deploy OpenStack. Эта операция пересоздаст все контейнеры на узлах. Также будут пересозданы все конфигурации из папки /var/lib/config-data/, где хранятся конфигурации сервисов OpenStack. Данные сервисов OpenStack не будут потеряны, так как все данные, как правило, хранятся во внешних по отношению к контейнерам вольюмах на хосте контейнера.

Внимательно! Операция Deploy OpenStack не затронет работу Pacemaker и Ceph.

Для того чтобы обновить контейнеры управляемые Pacemaker, необходимо с одного из узлов управления выполнить команду:

sudo podman tag undercloud.ctlplane:13787/acloud/<image_name>:latest \ 
undercloud.ctlplane:13787/acloud/<image_name>:pcmklatest
sudo pcs status
sudo pcs resource restart <service_resource>

Например

sudo podman tag undercloud.ctlplane:13787/acloud/openstack-haproxy:latest \ 
undercloud.ctlplane:13787/acloud/openstack-haproxy:pcmklatest
sudo pcs status
sudo pcs resource restart haproxy-bundle-podman-0

Добавление узлов в облако

Для добавления новых узлов необходимо пройти пункты из Подготовка развёртывания с нуля, касающиеся физических машин:

  • Физические узлы
  • Интроспекция
  • Порядок физических интерфейсов
  • Диск операционной системы
  • Физические порты

Затем в Меню развёртывания в окне Roles/Nodes and Networks добавьте ваш узел и перейдите к стадии развёртывания.

На стадии развёртывания сначала добавьте новый сервер, выполнив Provision Nodes.

При успешном добавлении сервера, выполните Update Known Hosts.

Далее выберите Deploy OpenStack и поставьте галочки в дополнительных параметрах снизу в полях: undercloud, -controller-0 и новые добавленные сервера. Затем нажмите Start. Таким образом добавление узла будет происходить быстрее.

Удаление развёрнутых узлов из облака

Для выведения узла из развёртывания перейдите в раздел Deployment, поставьте галку рядом с Activate danger section и выберите Delete Nodes.

┌────────────────────────────────────────── Deployment process ──────────────────────────────────────────┐
│  < Refresh/Ctrl+R >                                                                                    │
│                                                                                                        █
│Stack status                                                                                            ░
│  last_action: Validate Teamplates                                                                      ░
│  status: DEPLOY_SUCCESS                                                                                ░
│                                                                                                        ░
│Debug mode                                                                                              ░
│  [ ] No launch. Generate deployment script only                                                        ░
│                                                                                                        ░
│Pick deployment action                                                                                  ░
│  (•) Prepare Networks                                                                                  ░
│  ( ) Prepare Virtual IPs                                                                               ░
│  ( ) Provision Nodes                                                                                   ░
│  ( ) Validate Templates                                                                                ░
│  ( ) Deploy OpenStack                                                                                  ░
│  ( ) Update Known Hosts                                                                                ░
│                                                                                                        ░
│  [✓] 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.

Замена развёрнутых узлов в облаке

Для замены узла необходимо сначала добавить новый физический узел и настроить его согласно инструкции из Добавление узлов в облако.

Затем перейдите в раздел Roles/Nodes and Networks, удалите узел, который хотите заменить, и добавьте новый узел.

Затем в разделе Deployment выполните Provision Nodes, Update Known Hosts и Deploy OpenStack.

Частичное развёртывание

На стадии Run Cloud Service Deployment обновляется окно выбора c опциями Limit to:

┌────────────────────────────────────────── Deployment process ──────────────────────────────────────────┐
│  < Refresh/Ctrl+R >                                                                                    │
│                                                                                                        █
│Stack status                                                                                            ░
│  last_action: Validate Teamplates                                                                      ░
│  status: DEPLOY_SUCCESS                                                                                ░
│                                                                                                        ░
│Debug mode                                                                                              ░
│  [ ] No launch. Generate deployment script only                                                        ░
│                                                                                                        ░
│Pick deployment action                                                                                  ░
│  ( ) Prepare Networks                                                                                  ░
│  ( ) Prepare Virtual IPs                                                                               ░
│  ( ) Provision Nodes                                                                                   ░
│  ( ) Validate Teamplates                                                                               ░
│  (•) Deploy OpenStack                                                                                  ░
│  ( ) Update Known Hosts                                                                                ░
│                                                                                                        ░
│  [ ] Activate danger section                                                                           ░
│  (•) Update Partition                                                                                  ░
│  ( ) Delete Nodes                                                                                      ░
│  ( ) Delete Deployment                                                                                 ░
│                                                                                                        ░
│Set extra settings for deployment action                                                                ░
│[ ] Deploy with Stack Update                                                                            ░
│[ ] Limit to undercloud                                                                                 ░
│[ ] Limit to test-compute-0                                                                             ░
│[ ] Limit to test-compute-1                                                                             ░
│[ ] Limit to test-controller-0                                                                          ░
│[ ] Limit to test-controller-1                                                                          ░
│[ ] Limit to test-controller-2                                                                          ░
│                                                                                                        ░
│--------------------------------------------------------------------------------------------------------░
│Logs                                                                                                    ░
│                                                                                                        ░
│                               < Start/Ctrl+A >          < Stop/Ctrl+D >          < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Отметьте узлы для развёртывания и нажмите Start.

При добавлении новых узлов отмечайте помимо нового узла undercloud и -controller-0, так как с узла развёртывания производятся обращения к API развёртываемого облака для добавления вычислительного узла. А на узле управления выполняются команды для добавления нового узла в кластер Pacemaker.