Установка узла развёртывания

Подключение установочного диска

Цель — загрузиться с образа undercloud.iso.

При старте сервера запустится псевдографическая установка операционной системы.

  • Если используется установка с флешки, вставьте флешку в сервер и подключитесь к экрану физического сервера через консольный порт или подключённый дисплей.

  • Если используется установка через BMC, подключитесь к виртуальной консоли BMC. Примонтируйте образ через виртуальную консоль BMC. В BIOS/UEFI укажите загрузку с виртуального CD/DVD.

  • Если используется установка в виртуальной машине, создайте на используемом хосте ВМ (см. Установка узла развёртывания в виртуальной машине (Rocky 9)) и подключитесь к виртуальной консоли виртуализации. Инсталлятор андерклауда не пробрасывается в серийную консоль, поэтому используйте для подключения virt-manager:

    • убедитесь, что на вашей рабочей машине установлен X-сервер: в Linux с любой графической оболочкой он есть по умолчанию, для Windows используйте VcXsrv, для MacOS — XQuartz;

    • установите на рабочую машину virt-manager (например, через пакетный менеджер или через официальный сайт);

    • настройте root доступ без пароля к хосту, на котором расположена ВМ развёртывания (например, через добавление на хост вашего SSH-ключа в /root/.ssh/authorized_keys);

    • запустите virt-manager и добавьте соединение к хосту через пользователя root.

Примечание

При использовании виртуальной машины в VMware ESXi убедитесь, что в настройках сети выделенной под Ctlplane политики безопасности переведены в режим access: Promiscuous Mode, MAC Address Changes и Forged Transmits.

Результат: запускается псевдографический установщик.

Установка операционной системы

Цель — установить ОС на сервер.

  1. Подключитесь к консоли.

  2. Выберите диск для установки.

Примечание

Минимум 100 ГБ, лучше SSD. Рабочий сценарий — 150 ГБ (см. Требования к оборудованию и ПО).

Выбор диска

Выбор диска

Все данные на диске будут удалены. Подтвердите действие.

Подтверждение удаления

Подтверждение удаления

  1. Дождитесь проверки образа undercloud.raw. Это может занять несколько минут.

Результат: установленная ОС на узле развёртывания.

Пользователь: stack.

Пароль: по умолчанию (обратитесь в поддержку для получения пароля).

Установка системы развёртывания

Цель — задать сеть управления и запустить настройку сервисов узла управления.

Залогиньтесь в систему под пользователем stack с паролем по умолчанию.

Настройка доступа к узлу развёртывания

Цель — настроить SSH-доступ к узлу развёртывания для удобства работы.

Добавьте интерфейс из сети External из таблицы сетевой конфигурации:

Примечание

Можно использовать любую другую сеть не из таблицы, но в этом случае необходимо дополнительно настроить маршрутизацию в сети External, чтобы узел развёртывания имел доступ к Public API развёртываемого OpenStack.

sudo nmcli con add type vlan con-name VLAN<номер External Vlan> dev <имя интерфейса External> id <номер External Vlan> ip4 <IP адрес/маска External>
sudo ip route add default via <шлюз External>

Пример:

sudo nmcli con add type vlan con-name VLAN373 dev eno2 id 373 ip4 10.198.73.100/24
sudo ip route add default via 10.198.73.1
Где:

Теперь можно подключиться по SSH:

ssh stack@<IP адрес undercloud>

Пример:

ssh stack@10.198.73.100

Используйте один из способов для настройки узла развёртывания:

  • через графический инсталлятор (рекомендуемый способ);

  • через клиент командной строки.

Графический инсталлятор

Далее запустите инсталлятор для настройки узла, выполнив sudo undercloud-firstboot:

┌───────────────────────────────────────── Undercloud Firstboot ─────────────────────────────────────────┐
│Primary network interface     [                                                                        ]│
│Ctlplane CIDR                 192.168.24.0/24                                                           █
│Undercloud local IP           192.168.24.1                                                              ░
│Gateway                       192.168.24.1                                                              ░
│Ctlplane DHCP start IP        192.168.24.35                                                             ░
│Ctlplane DHCP end IP          192.168.24.235                                                            ░
│Introspection DHCP start IP   192.168.24.16                                                             ░
│Introspection DHCP end IP     192.168.24.34                                                             ░
│Undercloud Nameservers                                                                                  ░
│Undercloud NTP Servers                                                                                  ░
│────────────────────────────────────────────────────────────────────────────────────────────────────────░
│Advanced settings                                                                                       ░
│────────────────────────────────────────────────────────────────────────────────────────────────────────░
│Hostname                      undercloud.localdomain                                                    ░
│Overcloud Domain Name         novalocal                                                                 ░
│Timezone                      Etc/GMT-3                                                                 ░
│                                                                                                        ░
│     < Save/Ctrl+U >           < Start/Ctrl+A >                                    < Quit/Ctrl+X >      │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘
  1. В поле Primary network interface укажите интерфейс для сети Ctlplane (например, eno1).

    Внимание

    Интерфейс не должен использоваться для доступа к узлу развёртывания.

  2. В поле Ctlplane CIDR оставьте значение по умолчанию 192.168.24.0/24, если в вашей таблице сетевой конфигурации не указано иное. Если значение отличается — укажите его вручную, остальные параметры сети укажите по аналогии.

    Примечание

    После установки изменить сеть Ctlplane будет крайне сложно. Убедитесь, что параметры согласованы до развёртывания.

    Важно

    В сети Ctlplane не должно быть другого DHCP-сервера — undercloud запускает свой.

  3. Nameservers и NTP Servers укажите существующие из общих сетевых параметров.

    Nameservers: x.x.x.x, y.y.y.y (укажите через запятую)

    NTP Servers: ntp1.example.ru, ntp2.example.ru (укажите через запятую)

    Дополнительные параметры:

    • Undercloud Hostname — имя хоста undercloud (по умолчанию undercloud.novalocal).

    • Overcloud Domain Name — домен для узлов облака (по умолчанию novalocal).

    • Undercloud Timezone — часовой пояс.

  4. После введения всех настроек перейдите к установке, нажав кнопку Start или комбинацию клавиш Ctrl+A.

Клиент командной строки

Альтернативно, для настройки узла развёртывания через командную строку используйте команду sudo undercloud-firstboot install:

usage: undercloud-firstboot install [-h] [--hostname HOSTNAME] --local-interface LOCAL_INTERFACE
                                    [--local-ip LOCAL_IP] [--local-mtu LOCAL_MTU]
                                    [--nameservers NAMESERVERS] --ntp-servers NTP_SERVERS
                                    [--overcloud-domain-name OVERCLOUD_DOMAIN_NAME]
                                    [--timezone TIMEZONE] [--cidr CIDR] [--dhcp-end DHCP_END]
                                    [--dhcp-start DHCP_START] [--gateway GATEWAY]
                                    [--host-routes HOST_ROUTES]
                                    [--inspection-iprange INSPECTION_IPRANGE] [--disable-validations]

options:
-h, --help            show this help message and exit
--hostname HOSTNAME   Fully qualified hostname (including domain) to set on the Undercloud. If left
                        unset, the current hostname will be used, but the user is responsible for
                        configuring all system hostname settings appropriately. If set, the undercloud
                        install will configure all system hostname settings. (Default:
                        undercloud.novalocal)
--local-interface LOCAL_INTERFACE
                        Network interface on the Undercloud that will be handling the PXE boots and
                        DHCP for Overcloud instances. Ex. eth0
--local-ip LOCAL_IP   IP information for the interface on the Undercloud that will be handling the
                        PXE boots and DHCP for Overcloud instances. The IP portion of the value will be
                        assigned to the network interface defined by local_interface, with the netmask
                        defined by the prefix portion of the value. (Default: 192.168.24.1/24)
--local-mtu LOCAL_MTU
                        MTU to use for the local_interface. (Default: 1500)
--nameservers NAMESERVERS
                        DNS nameserver(s). Use for the undercloud node and for the overcloud nodes.
                        (NOTE: To use different nameserver(s) for the overcloud, override the
                        DnsServers parameter in overcloud environment.) (Default: [])
--ntp-servers NTP_SERVERS
                        List of ntp servers to use.
--overcloud-domain-name OVERCLOUD_DOMAIN_NAME
                        DNS domain name to use when deploying the overcloud. The overcloud parameter
                        "CloudDomain" must be set to a matching value. (Default: novalocal)
--timezone TIMEZONE   Host timezone to be used. If no timezone is specified, the existing timezone
                        configuration is used. (Default: Etc/GMT-3)
--cidr CIDR           Network CIDR for the Neutron-managed subnet for Overcloud instances. (Default:
                        192.168.24.0/24)
--dhcp-end DHCP_END   End of DHCP allocation range for PXE and DHCP of Overcloud instances on this
                        network. (Default: 192.168.24.235)
--dhcp-start DHCP_START
                        Start of DHCP allocation range for PXE and DHCP of Overcloud instances on this
                        network. (Default: 192.168.24.35)
--gateway GATEWAY     Network gateway for the Neutron-managed network for Overcloud instances on this
                        network. (Default: 192.168.24.1)
--host-routes HOST_ROUTES
                        Host routes for the Neutron-managed subnet for the Overcloud instances on this
                        network. The host routes on the local_subnet will also be configured on the
                        undercloud. (Default: [])
--inspection-iprange INSPECTION_IPRANGE
                        Temporary IP range that will be given to nodes on this network during the
                        inspection process. Should not overlap with the range defined by dhcp_start and
                        dhcp_end, but should be in the same ip subnet. (Default:
                        192.168.24.16,192.168.24.34)
--disable-validations
                        Disable undercloud validations. (Default: False)

Обратите внимание, что локальный адрес узла развёртывания в этом случае указывается с маской подсети, а адреса для пула адресов интроспекции - через запятую.

Пример использования команды:

$ sudo undercloud-firstboot install --local-interface eth0 \
  --nameservers 77.88.8.1,77.88.8.8

Или пример со сменой сети администрирования:

$ sudo undercloud-firstboot install --local-interface eth0 \
  --cidr 192.168.25.0/24 \
  --local-ip 192.168.25.10/24 --gateway 192.168.25.1 \
  --dhcp-start 192.168.25.135 --dhcp-end 192.168.25.140 \
  --inspection-iprange 192.168.25.141,192.168.25.145

Устранение ошибок

Примечание

Логи установки можно посмотреть в /var/log/undercloud.log.

  1. Ошибка ntp

2025-10-27 08:15:41.669337 | 002590bb-0ebf-e9da-4309-00000000b7e8 |    IGNORED | Ensure system is NTP time synced | undercloud | error={"changed": true, "cmd": ["chronyc", "waitsync", "30"], "delta": "0:04:50.304777", "end": "2025-10-27 08:15:41.637736", "msg": "non-zero return code", "rc": 1, "start": "2025-10-27 08:10:51.332959", "stderr": "", "stderr_lines": [], "stdout": "try: 1, refid: 7F7F0101, correction: 0.000000000, skew: 0.000\ntry: 2, refid: 7F7F0101, correction: 0.000000000, skew: 0.000\ntry: 3, refid: 7F7F0101, correction: 0.000000000, skew:
...
e9da-4309-00000000b7e8 |     TIMING | chrony : Ensure system is NTP time synced | undercloud | 0:07:09.072453 | 290.53s
INTERACTIVE MODE

Такая ошибка возникает, когда ntp сервер не может выполнить синхронизацию.

Исправьте доступ к NTP-серверу или ошибки синхронизации с ним.

Если при установке после ошибки выводится Enter command:, введите re (означает Retry) и нажмите ENTER, установка продолжится.

Принципы работы

Важно

Ваш узел развёртывания готов! Основной пользователь - stack.

Примечание

После установки узла развёртывания можно запустить dctui, чтобы убедиться, что узел установлен правильно. Если узел развёртывания не установлен правильно, то dctui не запустится.

На узле развёртывания поднимается три сервиса OpenStack, которые затем используются для настроек, управления и хранения данных о создаваемых ресурсах.

  • Neutron - используется для хранения данных о сетях и портах физических узлов.

  • Ironic - используется для хранения данных о физических узлах и их состоянии, а также используется для развёртывания операционной системы на узлах через PXE.

  • Ironic Inspector - используется для сбора и хранения данных о физических узлах. Участвует только при выполнении интроспекции и запускается только на целевом узле, который проходит процесс интроспекции.

Heat - поднимается как сервис только в момент развёртывания и сохраняет все свои данные в /usr/lib/deckcrew/overcloud-deploy. Для тестовых целей может быть поднят вручную командой:

openstack tripleo launch heat

и остановлен:

openstack tripleo launch heat --kill

Важно

При первоначальной установке в Neutron заводится сеть Ctlplane, которая далее используется для всех развёртываний. Поменять её уже будет нельзя, поэтому будьте внимательны при настройке сети администрирования.