Начнем с того, что ваш пример инвентаризации в вашем вопросе не соответствует схеме для ANSI и будет отклонен при разборе.
Теперь, чтобы ответить на ваш вопрос, вы можете просто использовать несколько инвентаризаций одновременно. Вот простой пример:
Я создал 3 инвентарных файла yaml:
---
all:
children:
group1:
hosts:
host1:
host2:
inventories/otherhosts.yml
---
all:
children:
group2:
hosts:
hostA:
hostB:
- и, наконец,
inventories/shared.yml
---
all:
children:
sharedservers:
hosts:
host3:
host4:
Оттуда довольно легко обратиться ко всем необходимым хостам:
- Обращайтесь ко всем хостам во всех файлах инвентаризации:
ansible -i inventories/ all --list-hosts
hosts (6):
host1
host2
hostA
hostB
host3
host4
Это эквивалентно вызову каждого файла yaml в отдельной опции -i
в этом случае
ansible -i inventories/hosts.yml \
-i inventories/otherhosts.yaml -i inventories/shared.yml all --list-hosts
- Обращайтесь только к конкретным запасам
ansible -i inventories/hosts.yml -i inventories/shared.yml all --list-hosts
hosts (4):
host1
host2
host3
host4
ansible -i inventories/otherhosts.yml -i inventories/shared.yml all --list-hosts
hosts (4):
hostA
hostB
host3
host4