Как я понимаю, каждая пьеса занимает одну запись хостов. Я хочу знать, что если я создаю контейнерную книгу воспроизведения, которая включает в себя другие книги воспроизведения, могу ли я параметризировать хосты для каждой книги воспроизведения. Так что-то вроде
---
- include playbook_1.yml
hosts: tag_postgres
- include: playbook_2.yml
hosts: tag_rabbitmq
Я могу поместить все разные пьесы в один сценарий и вызвать, но тогда я не смогу повторно использовать некоторый set_fact из одной пьесы в другую, и, следовательно, много дублирования задач.
Еще одно следствие вопроса, могу ли я запустить ec2s на Амазонке, которая будет иметь
hosts: localhost
и конфигурация запущенных ec2, которые в основном будут настраивать инвентаризацию -i ec2.py
, и хосты будут определены как
hosts: tag_<some_tag>
происходит через одну и ту же книгу или набор включенных книг (разные роли)?
hosts:
раздела в своем yaml и, по сути, иметь несколько списков игр, используя разные группы хостов в вашем инвентаре?Ответы:
На самом деле, вы можете иметь более одного хоста: раздел для playbook. Похоже, что хозяева: начинает новую игру. См. , Например, http://www.tecmint.com/use-ansible-playbooks-to-automate-complex-tasks-on-multiple-linux-servers/ .
Как-то так у меня работает (ansible 2.2):
Итак, поместите hosts: вверху каждого включенного .yml, а не после include :.
источник
http://docs.ansible.com/ansible/playbooks_variables.html#information-discovered-from-systems-facts
Факты получены из ваших удаленных хостов. Так что это причина, по которой вы обычно можете обмениваться фактами между вашими разными хостами, когда в вашем файле * .yml есть несколько сборников .
Теперь вы можете получить доступ к фактам с других хостов, если вы сделаете что-то подобное в другой части своей книги:
но в этом случае вам нужно помнить, что вам нужно получить факты, прежде чем использовать это. Затем вы можете настроить первую часть в своей игровой книге, чтобы получить все факты для всех хостов или использовать для этого кэширование фактов (см .: http://docs.ansible.com/ansible/playbooks_variables.html#fact-caching ).
Теперь, если вы хотите обмениваться опциями в своих книгах, возможно, может быть лучше переосмыслить информацию для добавления в переменные, и, таким образом, вы можете «поделиться» вашими переменными с помощью одной и той же
include
инструкции, посмотрите на это:http://docs.ansible.com/ansible/playbooks_variables.html#variables-defined-from-included-files-and-roles
источник