2016-06-15 3 views
0

У меня есть ansible установки, которая выглядит, как этотанзибль переменной сферы столкновения

inventories/ 
    sandbox1 
    group_vars/ 
     all 
     sandbox1 
pb/ 
    pb1/ 
     run_pb1.yml 

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

Я получил переменную Foo, что я определяю внутри

inventories/group_vars/all 

И

inventories/group_vars/sandbox1 

Теперь мой вопрос заключается в том, что всякий раз, когда я называю

ansible-playbook -i inventories/sandbox1 pb/pb1/run_pb1.yml 

пьес запускается со значением foo , который содержится в инвентарях/group_vars/all ... введите другой способ: значение foo из запасов/group_vars/sandbox1 не переопределяет версию «global/all».

Это правильный способ реализации специфичной для инвентаря переменной? Я хочу, чтобы избежать создания Mulitple playbooks для чего-то же просто, как переменных изменений ... то есть, я не хочу, чтобы сделать что-то вроде этого внутри «все» файла

default_foo: bar 
sandbox1_foo: baz 

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

Есть ли способ сделать то, что я прошу?

+0

папка group_vars должна содержать имена групп, а не инвентаризации для добавления переменных. Можете ли вы поделиться образцом вашего инвентаря sandbox1 для дальнейшего уточнения? – Theo

+0

Ваш комментарий предоставил решение, я не включал группу, названную sandbox1, в мой файл инвентаря. Благодаря! – Zack

+0

Для потомков я добавил свой комментарий в качестве ответа. :-) – Theo

ответ

1

В папке group_vars должны быть указаны имена групп, а не кадастры для добавления переменных. Добавьте группу в файл инвентаря sandbox1 под названием «sandbox1», и он будет использовать эти переменные.

+0

спасибо, сэр. вы джентльмен и ученый. – Zack

Смежные вопросы