[ English | Indonesia | русский | English (United Kingdom) | Deutsch ]
Понимание 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. Сопоставление компонентов с несколькими группами таким образом позволяет гибко нацеливать роли и задачи.