Настройка развертывания¶
Ansible использует файлы, содержащие обязательные и дополнительные директивы конфигурации. Прежде чем запускать плейбуки Ansible, отредактируйте эти файлы для определения целевой среды. Задачи конфигурации включают:
Настройку сетей целевых хостов: определение мостовых (bridge) интерфейсов и сетей.
Список целевых хостов для установки программного обеспечения.
Связи между виртуальными и физическими сетями для OpenStack Networking (neutron).
Пароли для всех служб.
Начальная настройка окружения¶
OpenStack-Ansible (OSA) использует различные файлы для формирования Ansible inventory. Выполните следующие действия по настройке на узле развертывания (deployment host).
Скопируйте содержимое каталога /opt/openstack-ansible/etc/openstack_deploy в каталог /etc/openstack_deploy.
# cp -a /opt/openstack-ansible/etc/openstack_deploy /etc/openstack_deploy
Перейдите в каталог
/etc/openstack_deploy.Скопируйте файл
openstack_user_config.yml.exampleвopenstack_user_config.yml# cp openstack_user_config.yml.example openstack_user_config.yml
Просмотрите файл
openstack_user_config.ymlи внесите изменения в соответствии с конфигурацией вашей среды OpenStack.Примечание
Файл содержит подробные комментарии к различным параметрам конфигурации. Подробнее см. в Руководстве пользователя <user/index.html>`и :dev_docs:`Справочнике.
Просмотрите файл
user_variables.ymlдля настройки глобальных параметров развертывания и параметров отдельных ролей. Файл содержит примеры переменных и комментарии; полный список переменных доступен в документации к каждой роли.Примечание
Важной переменной является
install_method, определяющая метод установки служб OpenStack. Службы можно развернуть либо из исходного кода (по умолчанию), либо из пакетов дистрибутива. Развертывание из исходников ближе к эталонной установке OpenStack и предоставляет больше возможностей для настройки. В то же время развертывание из пакетов дистрибутива, как правило, предлагает проверенные самим дистрибутивом комбинации пакетов, однако обновления выходят реже и с возможной задержкой. Кроме того, этот метод предоставляет меньше возможностей для кастомизации и поддерживается лишь ограниченным набором служб. Переменнаяinstall_methodзадаётся при первоначальном развертывании, и ее нельзя изменять впоследствии, поскольку OpenStack-Ansible не поддерживает конвертацию из одного метода установки в другой. Поэтому важно тщательно оценить свои потребности и взвесить достоинства и недостатки каждого метода перед принятием решения.
Конфигурация в файле openstack_user_config.yml определяет, на каких хостах запускаются контейнеры и службы, развертываемые OpenStack-Ansible. Например, хосты, перечисленные в секции shared_infra_hosts, запускают контейнеры для многих общих служб, необходимых вашей среде OpenStack, в том числе баз данных, Memcached и RabbitMQ. Остальные типы хостов содержат контейнеры других типов и все они также перечислены в файле openstack_user_config.yml.
Некоторые службы, такие как Glance, Heat, Horizon и nova-infra, не перечислены отдельно в примере файла конфигурации, поскольку они размещаются на хостах os-infra. При необходимости отдельного масштабирования можно явно указать image-hosts или dashboard-hosts.
За примерами конфигурации обратитесь к Руководству пользователя
Подробности о формировании inventory из конфигурации среды и с учетом приоритета переменных описаны в разделе об inventory в Справочнике.
Настройка целевых хостов¶
Отредактируйте файл /etc/openstack_deploy/openstack_user_config.yml для настройки целевых хостов.
Не назначайте один и тот же IP-адрес разным именам целевых хостов — это может привести к непредсказуемым результатам. Каждый IP-адрес должен соответствовать ровно одному имени хоста. Если один хост используется в нескольких ролях (например, инфраструктуры и сети), укажите одно и то же имя хоста и IP-адрес в каждой секции.
Если не указано иное, замените ``*_IP_ADDRESS ``на IP-адрес мостового (bridge) интерфейса управления контейнерами br-mgmt на каждом целевом хосте.
Примечание
Если SSH-доступ к хосту осуществляется через сеть, отличную от интерфейса br-mgmt, обратитесь к соответствующему руководству.
Укажите список минимум из трех инфраструктурных целевых хостов в секции
shared_infra_hosts:shared_infra_hosts: infra01: ip: INFRA01_IP_ADDRESS infra02: ip: INFRA02_IP_ADDRESS infra03: ip: INFRA03_IP_ADDRESS infra04: ...
Укажите список минимум из одного целевого хоста Keystone в секции
identity_hosts:identity_hosts: infra01: ip: INFRA01_IP_ADDRESS infra02: ...
Укажите набор хостов, ответственных за сетевые роли в вашем развертывании:
network_infra_hosts: infra01: ip: INFRA01_IP_ADDRESS infra02: ... network_northd_hosts: infra01: ip: INFRA01_IP_ADDRESS infra02: ...
При развертывании OpenStack с OVN необходимо правильно настроить
network_gateway_hostsв зависимости от архитектуры сети. Существуют два типичных сценария:Сценарий 1: DVR со шлюзом на вычислительных узлах:
network_gateway_hosts: compute01: ip: COMPUTE01_IP_ADDRESS compute02: ...
Сценарий 2: выделенные сетевые узлы:
network_gateway_hosts: network01: ip: NETWORK01_IP_ADDRESS network02: ...
Укажите список минимум из одного вычислительного целевого хоста в секции
compute_hosts:compute_hosts: compute01: ip: COMPUTE01_IP_ADDRESS compute02: ...
Укажите список минимум из одного целевого хоста репозитория в секции
repo_infra_hosts:repo_infra_hosts: infra01: ip: INFRA01_IP_ADDRESS infra02: ip: INFRA02_IP_ADDRESS infra03: ip: INFRA03_IP_ADDRESS infra04: ...
Репозиторий, как правило, размещается на одном или нескольких инфраструктурных хостах.
При необходимости укажите хосты хранилища в секции
storage_hosts:storage_hosts: storage01: ip: STORAGE01_IP_ADDRESS storage02: ...
Каждый хост хранилища требует дополнительной настройки для определения драйвера бэкенда. В конфигурации по умолчанию предусмотрен опциональный хост хранилища. Чтобы развернуть среду без хостов хранилища, закомментируйте блок, начинающийся со строки
storage_hosts.
Установка дополнительных служб¶
Для установки дополнительных служб используйте файлы-примеры из каталога etc/openstack_deploy/conf.d, в которых показаны соответствующие группы хостов. Чтобы добавить новую службу, добавьте группу хостов, распределите по ней хосты и запустите плейбуки.
Расширенная настройка служб¶
OpenStack-Ansible предоставляет широкие возможности расширенной настройки служб. Доступные параметры описаны в документации к каждой роли.
Важно
Этот шаг принципиально важен для адаптации OpenStack-Ansible под ваши задачи, однако зачастую упускается новичками. Изучите документацию по каждой роли, руководства пользователя и справочные материалы, если хотите получить облако, настроенное именно под ваши нужды.
Роли инфраструктурных служб¶
Роли служб OpenStack¶
Прочие роли¶
Настройка учетных данных служб¶
Настройте учетные данные для каждой службы в файле etc/openstack_deploy/user_secrets.yml. Для повышения безопасности рассмотрите использование `Ansible Vault<http://docs.ansible.com/playbooks_vault.html>`_ для шифрования файлов, содержащих учетные данные. Можно воспользоваться коллекцией `osa_ops.encrypt_secrets<https://docs.openstack.org/openstack-ansible-ops/latest/encrypt_secrets.html>`_ для автоматизации и упрощения процессов шифрования и последующего управления секретами.
Установите права доступа к этим файлам, ограничив доступ для непривилегированных пользователей.
Параметр keystone_auth_admin_password задает пароль пользователя admin как для доступа к API OpenStack, так и для входа в панель управления (Horizon).
Рекомендуется использовать скрипт pw-token-gen.py для генерации случайных значений переменных в каждом файле, содержащем учетные данные служб:
# cd /opt/openstack-ansible
# ./scripts/pw-token-gen.py --file /etc/openstack_deploy/user_secrets.yml
Для повторной генерации уже существующих паролей добавьте флаг --regen.
Информацию о ротации паролей см. в документации по `ротации паролей<https://docs.openstack.org/openstack-ansible/latest/user/security/password-rotation.html>`_ .