Подготовка узла развертывания¶
При установке 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). Перед началом работы рекомендуется обновить системные пакеты и ядро.
Обновите списки источников пакетов:
# apt update
Обновите системные пакеты и ядро:
# apt dist-upgrade
Перезагрузите хост.
Установите дополнительные программные пакеты, если они не были установлены в процессе установки операционной системы:
# apt install build-essential git chrony openssh-server python3-dev sudo
Настройте NTP для синхронизации с подходящим источником времени.
Настройка CentOS Stream / Rocky Linux / AlmaLinux¶
Установите дополнительные программные пакеты и настройте протокол синхронизации времени (NTP). Перед началом работы рекомендуется обновить системные пакеты и ядро.
Обновите системные пакеты и ядро
# dnf upgrade
Отключите SELinux. Отредактируйте файл
/etc/sysconfig/selinuxи заменитеSELINUX=enforcingнаSELINUX=disabled.Для дистрибутивов RHEL начиная с версии 9 рекомендуемый способ отключения SELinux — через загрузчик с помощью утилиты grubby:
# grubby --update-kernel ALL --args selinux=0
Перезагрузите хост.
Установите дополнительные программные пакеты, если они не были установлены в процессе установки операционной системы:
# dnf install git chrony openssh-server python3-devel sudo # dnf group install "Development Tools"
Настройте NTP для синхронизации с подходящим источником времени и запустите chronyd:
# systemctl enable chronyd # systemctl start chronyd
Служба
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)
Установка исходного кода и зависимостей¶
Установите исходный код и зависимости для узла развертывания.
Примечание
При установке в условиях ограниченного доступа к сети ознакомьтесь с разделом Установка с ограниченной связностью перед тем, как продолжить.
Склонируйте последний стабильный выпуск репозитория 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
Перейдите в каталог
/opt/openstack-ansibleи запустите скрипт начальной настройки Ansible:# scripts/bootstrap-ansible.sh
Настройка Docker с Alpine¶
Это альтернативный вариант настройки узла развертывания с использованием контейнера Docker в качестве deploy host.
Данный вариант не поддерживается и не тестируется в CI, поэтому используйте его на свой страх и риск.
Перед началом работы рекомендуется обновить системные пакеты и ядро Docker-хоста.
Подготовьте 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"]
Соберите и запустите контейнер узла развертывания
# docker build . -t openstack-ansible:master # docker run -dit --name osa-deploy openstack-ansible:master # docker exec -it osa-deploy bash
Настройте NTP для синхронизации с подходящим источником времени на Docker-хосте.