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
Другие вопросы по тегам