[ English | русский ]

Подготовка узла развертывания

_images/installation-workflow-deploymenthost.png

При установке OpenStack в производственной среде рекомендуется использовать отдельный узел развертывания с Ansible, который будет оркестрировать установку OpenStack-Ansible (OSA) на целевых хостах. В тестовой среде допускается использовать один из инфраструктурных целевых хостов в качестве узла развертывания.

Чтобы использовать целевой хост в качестве узла развертывания, выполните шаги из раздела Подготовки целевых хостов на соответствующем хосте.

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

Установите операционную систему

Установите одну из следующих поддерживаемых операционных систем на узлах развертывания:

  • Ubuntu Server 24.04 (Noble Numbat) 64-bit
  • Ubuntu Server 26.04 (Resolute Raccoon) 64-bit
  • Debian 13 (Trixie) 64-bit
  • CentOS 10 Stream 64-bit
  • Rocky Linux 10 64-bit
  • AlmaLinux 10 64-bit (may work, not officially tested)

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

Настройка Ubuntu

Установите дополнительные программные пакеты и настройте протокол синхронизации времени (NTP). Перед началом работы рекомендуется обновить системные пакеты и ядро.

  1. Обновите списки источников пакетов:

    # apt update
    
  2. Обновите системные пакеты и ядро:

    # apt dist-upgrade
    
  3. Перезагрузите хост.

  4. Установите дополнительные программные пакеты, если они не были установлены в процессе установки операционной системы:

    # apt install build-essential git chrony openssh-server python3-dev sudo
    
  5. Настройте NTP для синхронизации с подходящим источником времени.

Настройка CentOS Stream / Rocky Linux / AlmaLinux

Установите дополнительные программные пакеты и настройте протокол синхронизации времени (NTP). Перед началом работы рекомендуется обновить системные пакеты и ядро.

  1. Обновите системные пакеты и ядро

    # dnf upgrade
    
  2. Отключите SELinux. Отредактируйте файл /etc/sysconfig/selinux и замените SELINUX=enforcing на SELINUX=disabled.

    Для дистрибутивов RHEL начиная с версии 9 рекомендуемый способ отключения SELinux — через загрузчик с помощью утилиты grubby:

    # grubby --update-kernel ALL --args selinux=0
    
  3. Перезагрузите хост.

  4. Установите дополнительные программные пакеты, если они не были установлены в процессе установки операционной системы:

    # dnf install git chrony openssh-server python3-devel sudo
    # dnf group install "Development Tools"
    
  5. Настройте NTP для синхронизации с подходящим источником времени и запустите chronyd:

    # systemctl enable chronyd
    # systemctl start chronyd
    
  6. Служба firewalld включена по умолчанию в CentOS Stream и Rocky Linux, и ее правила по умолчанию препятствуют корректному взаимодействию компонентов OpenStack. Остановите службу ``firewalld ``и заблокируйте ее запуск:

    # systemctl stop firewalld
    # systemctl mask firewalld
    

Настройка SSH-ключей

Ansible использует SSH с аутентификацией по открытому ключу для подключения узла развертывания к целевым хостам. Чтобы минимизировать запросы на ввод данных в ходе работы Ansible, рекомендуется не использовать парольную фразу для ключевых пар. Если парольная фраза необходима, воспользуйтесь командами ssh-agent и ssh-add для ее временного сохранения перед выполнением операций Ansible.

Настройка сети

Развертывание с помощью Ansible завершится ошибкой, если узел развертывания не может подключиться к контейнерам по SSH.

Настройте узел развертывания (на котором выполняется Ansible) так, чтобы он находился в одном сегменте сети уровня L2 с сетью управления контейнерами. По умолчанию это сеть br-mgmt. Такая конфигурация снижает частоту сбоев, вызванных проблемами связности.

Выберите IP-адрес из следующего примерного диапазона для назначения узлу развертывания:

Container management: 172.29.236.0/22 (VLAN 10)

Установка исходного кода и зависимостей

Установите исходный код и зависимости для узла развертывания.

Примечание

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

  1. Склонируйте последний стабильный выпуск репозитория OpenStack-Ansible Git в каталог /opt/openstack-ansible:

    Примечание

    Значение master может не совпадать с наивысшим доступным тегом. Если вы не используете ветку master, проверьте актуальный стабильный выпуск для вашей ветки, просмотрев полный список тегов: OpenStack-Ansible Tags

    # git clone -b master https://opendev.org/openstack/openstack-ansible /opt/openstack-ansible

    Если доступ к opendev.org для выполнения git clone недоступен, в качестве альтернативного репозитория можно использовать github.com:

    # git clone -b master https://github.com/openstack/openstack-ansible.git /opt/openstack-ansible
  2. Перейдите в каталог /opt/openstack-ansible и запустите скрипт начальной настройки Ansible:

    # scripts/bootstrap-ansible.sh
    

Настройка Docker с Alpine

Это альтернативный вариант настройки узла развертывания с использованием контейнера Docker в качестве deploy host.

Данный вариант не поддерживается и не тестируется в CI, поэтому используйте его на свой страх и риск.

Перед началом работы рекомендуется обновить системные пакеты и ядро Docker-хоста.

  1. Подготовьте Dockerfile для OpenStack Ansible

    FROM alpine
    RUN apk add --no-cache bash build-base git python3-dev openssh-client openssh-keygen sudo py3-virtualenv iptables libffi-dev openssl-dev linux-headers coreutils curl
    RUN git clone -b master https://opendev.org/openstack/openstack-ansible /opt/openstack-ansible
    WORKDIR /opt/openstack-ansible
    RUN /opt/openstack-ansible/scripts/bootstrap-ansible.sh
    ENTRYPOINT ["bash"]
  2. Соберите и запустите контейнер узла развертывания

    # docker build . -t openstack-ansible:master
    # docker run -dit --name osa-deploy openstack-ansible:master
    # docker exec -it osa-deploy bash
  3. Настройте NTP для синхронизации с подходящим источником времени на Docker-хосте.