Ansible - возможно ли добавить теги к хостам внутри инвентаря? - PullRequest
0 голосов
/ 31 декабря 2018

Как говорится в теме, у меня вопрос: возможно ли добавить теги к хостам, описанным в инвентаре?

Моя цель - иметь возможность запускать ansible-playbook на определенном хосте / группе хостов, у которых есть этот конкретный тег, например, только на серверах с тегом 'Env = test and Type = test'

Например, при запуске playbook:

ansible-playbook -i hosts test.yml --extra-vars "Env=${test} Type=${test}"

Я передам теги в команде, и она будет работать только на отфильтрованных хостах.

Большое спасибо!

Обновление:

В качестве альтернативы, возможно, делать что-то вроде динамического инвентаря?https://docs.ansible.com/ansible/latest/dev_guide/developing_inventory.html#developing-inventory

[tag_Name_staging_foo]

[tag_Name_staging_bar]

[staging:children]
tag_Name_staging_foo
tag_Name_staging_bar

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Хосты не имеют ансибл-тэгов; tasks имеют теги , и они используются для условного выполнения задач, а не для условных целевых хостов.

Есть несколько способов условно настроить таргетинг на хосты, и лучший опыт в моем опыте - ansible groups .Поместите хосты, на которых вы хотите ориентироваться, в группу;затем либо нацельтесь на эту группу непосредственно в игре:

 - hosts: my_host_group
   tasks: [ ... ] 

Или ограничьте список воспроизведения набором хостов, намеченных в игре:

ansible-playbook -l my_limited_hosts_group playbook.yaml
0 голосов
/ 31 декабря 2018

Чтобы ответить на ваш вопрос

Можно ли добавить теги к хостам внутри инвентаря для запуска ansible-playbook на определенном хосте / группе хостов?

Нет, теги применяются ТОЛЬКО к задачам

Когда вы применяете теги: атрибуты к структурам, отличным от задач, Ansible обрабатывает атрибут тега, чтобы применять ТОЛЬКО к задачам, которые они содержат.Применение тегов в любом месте, кроме задач, это просто удобство, поэтому вам не нужно помечать задачи по отдельности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...