Предположим, у меня есть одна пьеса с некоторыми ролями для установки сервера приложений, и мне нравится применять одну и ту же playbook на обоих производственных и тестовых серверах.Ansible: выполнить роль только для некоторых хостов
Оба сервера производства и тестирования имеют один и тот же список ролей, за исключением одного, который должен применяться только на рабочих серверах.
Можно ли каким-то образом указать, что эта роль будет применяться только к производственным серверам, использующим один и тот же учебник?
Например, если сборник пьес является:
---
- hosts: appserver
roles:
- { role: mail, tags: ["mail"] }
- { role: firewall, tags: ["firewall"] }
- { role: webserver, tags: ["webserver"] }
- { role: cache, tags: ["cache"] }
и у меня есть два запасов: один для производства и один для тестирования.
Когда я запускаю playbook с использованием инвентаря тестирования, я не хочу, чтобы роль «брандмауэр» выполнялась.
Моя идея сделать что-то вроде установки переменной в «производства» инвентаре и использовать что-то вроде «если < вар> установлен, то выполнить роль„межсетевой экран“» ... Я, если это не знаю возможно, и если да, то как это сделать?
ответ Оба Gilė и ваши мы я точно понял, что я искал (я только что принял ответ gile, потому что он опубликовал его первым :)) Спасибо за вашу помощь! – tvs
@tvs Я добавил еще один способ, который лучше подходит вашему делу. – techraf