У меня есть playbook, который я хочу выполнить только на серверах RHEL 6. Я знаю, что я могу поставитьAnsible run playbook только для хостов, которые соответствуют некоторым переменным
when: ansible_distribution == "RedHat" and ansible_distribution_major_version == 6
В каждой задачи в рамках всего сборника пьес, но это кажется довольно неэффективно для меня.
Нет ли способа ограничить всю игру на эти машины, чтобы мне не пришлось вставлять эту строку в каждую задачу?
Я полагаю, что он даже выполнялся бы намного быстрее, потому что не нужно было проверять, является ли сервер RedHat 6 в каждой отдельной задаче.
Кроме того, я полагаю, что наиболее эффективным способом было бы сохранить список серверов RHEL 6 в стороне и выполнить эту игру на них только, так как Ansible не кэширует эту информацию, поэтому она всегда должна была подключитесь ко всем серверам, чтобы выяснить, являются ли они RHEL и версией 6?
Ниже приведен хороший ответ, но вы правы, что лучшим способом было бы отслеживать ОС в инвентаре в виде групп. – smiller171