2016-06-20 17 views
1

У меня есть сложная установка Ansible с несколькими хостами в моем групповом файле. Что-то вроде этого.Ansible: Как запустить определенный хост в Vagrant?

# hosts/groups 

[local] 
127.0.0.1 

[server1] 
server1.domain.com 

[server2] 
server2.domain.com 

[group1] 
local 
server1 

[group2] 
local 
server2 

Таким образом, я могу запустить обе группы против локального хоста: 2222, который мой Vagrant ящик, однако, они будут и выполнены. Для тестирования я бы очень предпочел выбрать, какую настройку я бы хотел проверить. Я экспериментировал с -extra-vars аргументами и условностями, что довольно уродливо. Есть ли способ использовать аргумент extra_vars с конфигурацией хоста. Использование такой команды, как ...

ansible-playbook playbook.yml -i hosts -l 127.0.0.1:2222 --extra-vars "vhost=server1.domain.com" 

Или я совершенно неправ.

+0

Я не совсем уверен, что вы пытаетесь сделать. Вы хотите запускать одни и те же плейеры против вашей локальной машины разработки в качестве своих производственных хостов? –

+0

Извините за неясность, у меня есть производственная установка с довольно несколькими (в основном несвязанными) машинами. Создавая еще один, я хотел бы запустить только эту конкретную машину против моего бродячего экземпляра, чтобы увидеть, как все происходит. –

+0

Я не уверен, что вы подразумеваете под «запускать только эту машину против моего бродячего экземпляра»; вы имеете в виду, что хотите только запустить определенную * роль * или * playbook * против вашего бродячего экземпляра? –

ответ

1

Я не думаю, что есть простой способ сделать это путем изменения того, как вы выполняете Ansible.

Лучший вариант, о котором я могу думать, предполагает потенциальную реорганизацию ваших плейбуков. Если вы создаете group1.yaml и group2.yaml, каждый из которых содержит заявление, необходимое для создания group1 и group2, соответственно, то вы можете запустить что-то вроде

[$]> ansible-playbook -l 127.0.0.1:2222 group1.yaml 

лишь запустить конфигурацию group1 против экземпляра развития.

Если вы все еще хотите удобный способ для выполнения всех задач, изменить ваш playbook.yaml включить другой playbooks:

- include: group1.yaml 
- include: group2.yaml 
+0

О, это очень хорошо, я попробую это. –