Ansible: Как запустить конкретный хост в Vagrant?
У меня есть сложная установка Ansible с несколькими хостами в файле группы. Что-то вроде этого.
# hosts/groups
[local]
127.0.0.1
[server1]
server1.domain.com
[server2]
server2.domain.com
[group1]
local
server1
[group2]
local
server2
Таким образом, я могу запустить обе группы против localhost:2222, который является моей коробкой Vagrant, однако они будут выполнены обеими. Для тестирования я бы очень предпочел выбрать, какую настройку я бы хотел проверить. Я экспериментировал с аргументами и условными выражениями --extra-vars, что довольно уродливо. Есть ли способ использовать аргумент extra_vars с конфигурацией хоста. Используя команду как...
ansible-playbook playbook.yml -i hosts -l 127.0.0.1:2222 --extra-vars "vhost=server1.domain.com"
Или я совершенно не прав.
1 ответ
Я не думаю, что есть простой способ сделать это с помощью изменений в том, как вы запускаете Ansible.
Лучший вариант, который я могу придумать, включает в себя потенциальную реорганизацию ваших сборников. Если вы создаете group1.yaml
а также group2.yaml
каждый из которых содержит утверждения, необходимые для настройки group1
а также group2
соответственно тогда можно запустить что-то вроде
[$]> ansible-playbook -l 127.0.0.1:2222 group1.yaml
только запустить group1
Конфигурация против вашего экземпляра разработки.
Если вам все еще нужен удобный способ запуска всех задач, измените playbook.yaml
чтобы включить другие пьесы:
- include: group1.yaml
- include: group2.yaml