[ English | Deutsch | русский | English (United Kingdom) | Indonesia ]
Понимание inventory¶
Макет контейнеров и служб по умолчанию в OpenStack-Ansible (OSA) определяется файлом /etc/openstack_deploy/openstack_user_config.yml и содержимым каталогов /etc/openstack_deploy/conf.d/ и /etc/openstack_deploy/env.d/. Вы используете эти источники для определения сопоставлений групп, которые плейбуки используют для определения хостов и контейнеров для ролей, используемых при развертывании.
- Группы хостов, которые объединяют целевые хосты в группы inventory, определяются с помощью файла - /etc/openstack_deploy/openstack_user_config.ymlи содержимого каталога- /etc/openstack_deploy/conf.d/.
- Вы определяете группы контейнеров, которые могут сопоставлять компоненты служб, подлежащие развертыванию, с группами хостов с помощью файлов в каталоге - /etc/openstack_deploy/env.d/.
Чтобы настроить компоновку компонентов для вашего развертывания, измените группы хостов и группы контейнеров соответствующим образом перед запуском установочных плейбуков.
Понимание групп хостов (структура conf.d)¶
В рамках начальной конфигурации каждый целевой хост появляется либо в файле /etc/openstack_deploy/openstack_user_config.yml, либо в файлах в каталоге /etc/openstack_deploy/conf.d/. Формат, используемый для файлов в каталоге conf.d/, идентичен синтаксису, используемому в файле openstack_user_config.yml.
В этих файлах целевые хосты перечислены под одним или несколькими заголовками, такими как shared-infra_hosts или storage_hosts, которые служат в качестве сопоставлений групп Ansible. Эти группы сопоставлены с физическими хостами.
Файл haproxy.yml.example в каталоге conf.d/ содержит простой пример определения группы хостов (load_balancer_hosts) с двумя хостами (infra1 и infra2).
Файл swift.yml.example предоставляет более сложный пример. Здесь переменные хоста для целевого хоста указываются с помощью ключа container_vars. OpenStack-Ansible применяет все записи под этим ключом как переменные, специфичные для хоста, к любым контейнерам компонентов на определенном хосте.
Примечание
Для управления размером файла мы рекомендуем вам определять новые группы inventory, особенно для новых служб, используя новый файл в каталоге conf.d/.
Понимание групп контейнеров (структура env.d)¶
Дополнительные сопоставления групп находятся в файлах в каталоге /etc/openstack_deploy/env.d/. Эти группы рассматриваются как виртуальные сопоставления из групп хостов (описанных выше) на группы контейнеров, которые определяют, где развертывается каждая служба. Просматривая файлы в каталоге env.d/, вы можете начать видеть вложенность групп, представленных в макете по умолчанию.
Например, файл shared-infra.yml определяет группу контейнеров shared-infra_containers как подмножество группы inventory all_containers. Группа контейнеров shared-infra_containers сопоставляется с группой хостов shared-infra_hosts. Все компоненты служб в группе контейнеров shared-infra_containers развертываются на каждом целевом хосте в группе хостов shared-infra_hosts.
В разделе physical_skel динамический inventory OpenStack-Ansible ожидает найти пару ключей. Первый ключ сопоставляется с элементами в разделе container_skel, а второй ключ сопоставляется с целевыми группами хостов (описанными выше), которые отвечают за размещение компонента службы.
Продолжая пример, файл memcache.yml определяет группу контейнеров memcache_container. Эта группа является подмножеством группы shared-infra_containers, которая сама является подмножеством группы inventory all_containers.
Примечание
Группа all_containers автоматически определяется OpenStack-Ansible. Любой компонент службы, управляемый OpenStack-Ansible, сопоставляется с подмножеством группы инвентаризации all_containers, напрямую или косвенно через другую промежуточную группу контейнеров.
Макет по умолчанию не полагается исключительно на группы, являющиеся подмножествами других групп. Группа компонентов memcache является частью группы memcache_container, а также группы memcache_all и также содержит группу компонентов memcached. Если вы просмотрите сценарий playbooks/memcached-install.yml, вы увидите, что сценарий применяется к хостам в группе memcached. Другие службы могут иметь более сложные требования в развертывании. Они по-разному определяют и используют группы контейнеров inventory. Сопоставление компонентов с несколькими группами таким образом позволяет гибко нацеливать роли и задачи.
