Добрый день.
Попалась мне на глаза статья на хабре - https://habr.com/ru/articles/854792/.
Я бы сказал, что это хороший анти-паттерн. Не нужно так писать роли.
Роль - это «invariant», она должна содержать все данные, чтобы устанавливать asterisk (в нашем случае). А playbook - должен содержать данные, снабдить всем необходимым, чтобы роль смогла установится.
Чтобы я сделал:
- Добавить в meta/main.yml - добавить информацию, что данная роль работает в RHEL;
- Добавить в tasks/main.yml - первая task - ansible.builtin.fail, должна определить, что система не RHEL и прекратить работу;
- Почаще запускать ansible-lint, чтобы, например, писать ansible.builtin.fail - вместо fail.
- Следовать порядку в tasks - name, when, task name, данные задания.
- Помнить о приоритете переменных, поместить все переменные в defaults/main.yml, вместо текущего vars/main.yml.
- Добавить Molecule - для лучшего тестирования;
- Добавить testinfra - добавить еще больше тестов.