[ English | русский ]

Настройка развертывания

_images/installation-workflow-configure-deployment.png

Ansible использует файлы, содержащие обязательные и дополнительные директивы конфигурации. Прежде чем запускать плейбуки Ansible, отредактируйте эти файлы для определения целевой среды. Задачи конфигурации включают:

  • Настройку сетей целевых хостов: определение мостовых (bridge) интерфейсов и сетей.

  • Список целевых хостов для установки программного обеспечения.

  • Связи между виртуальными и физическими сетями для OpenStack Networking (neutron).

  • Пароли для всех служб.

Начальная настройка окружения

OpenStack-Ansible (OSA) использует различные файлы для формирования Ansible inventory. Выполните следующие действия по настройке на узле развертывания (deployment host).

  1. Скопируйте содержимое каталога /opt/openstack-ansible/etc/openstack_deploy в каталог /etc/openstack_deploy.

    # cp -a /opt/openstack-ansible/etc/openstack_deploy /etc/openstack_deploy
    
  2. Перейдите в каталог /etc/openstack_deploy.

  3. Скопируйте файл openstack_user_config.yml.example в openstack_user_config.yml

    # cp openstack_user_config.yml.example openstack_user_config.yml
    
  4. Просмотрите файл openstack_user_config.yml и внесите изменения в соответствии с конфигурацией вашей среды OpenStack.

    Примечание

    Файл содержит подробные комментарии к различным параметрам конфигурации. Подробнее см. в Руководстве пользователя <user/index.html>`и :dev_docs:`Справочнике.

  5. Просмотрите файл 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, обратитесь к соответствующему руководству.

  1. Укажите список минимум из трех инфраструктурных целевых хостов в секции shared_infra_hosts:

    shared_infra_hosts:
      infra01:
        ip: INFRA01_IP_ADDRESS
      infra02:
        ip: INFRA02_IP_ADDRESS
      infra03:
        ip: INFRA03_IP_ADDRESS
      infra04: ...
    
  2. Укажите список минимум из одного целевого хоста Keystone в секции identity_hosts:

    identity_hosts:
      infra01:
        ip: INFRA01_IP_ADDRESS
      infra02: ...
    
  3. Укажите набор хостов, ответственных за сетевые роли в вашем развертывании:

    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: ...
    
  4. Укажите список минимум из одного вычислительного целевого хоста в секции compute_hosts:

    compute_hosts:
      compute01:
        ip: COMPUTE01_IP_ADDRESS
      compute02: ...
    
  5. Укажите список минимум из одного целевого хоста репозитория в секции repo_infra_hosts:

    repo_infra_hosts:
      infra01:
        ip: INFRA01_IP_ADDRESS
      infra02:
        ip: INFRA02_IP_ADDRESS
      infra03:
        ip: INFRA03_IP_ADDRESS
      infra04: ...
    

    Репозиторий, как правило, размещается на одном или нескольких инфраструктурных хостах.

  6. При необходимости укажите хосты хранилища в секции 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>`_ .