У меня есть книга игр, которая должна работать со всем моим инвентарем, со списком имен хостов в качестве дополнительной переменной (target_hosts
).
Все хосты в target_hosts
имеют group_id
hostvar, определенный на них.Я использую весь инвентарь, потому что некоторые вспомогательные хосты, которые соответствуют group_id
var, нуждаются в конфигурации для каждой группы, чтобы соответствовать в одном разделе.
В * часто будет несколько значений group_id
, связанных с хостами в target_hosts
список.Мне нужно выбрать правильную группу инвентаря вспомогательных хостов и импортировать / запустить playbook, чтобы настроить оба набора серверов на полпути через основной playbook.
Это то, что я сейчас делаю:
include_playbook: group-configure.yaml
vars:
src_hosts: "group-{{ group_id }}-ancillary-1"
dest_hosts: "{{ target_hosts }}"
В настоящее время я должен вручную разделить target_hosts
на group_id
вручную, а затем запустить основную книгу воспроизведения один раз для каждого.Это имеет массу ненужных накладных расходов.
Что я действительно хочу выполнить, это:
for each group of hosts from `target_hosts` with the same `group_id` hostvar:
import and run group-configure.yaml with:
src_hosts: "ancillary-{{ group_id }}"
target_hosts: restricted to those with that value of `group_id`'
Как я могу это сделать?Если нынешний способ структурирования не сработает, каков наилучший альтернативный подход?