Estou tentando criar um arquivo sudoers com modelo ansible. O arquivo sudoers deve se parecer com abaixo:
Cmnd_Alias LS = /bin/ls
Cmnd_Alias LESS = /usr/bin/less
Cmnd_Alias DU = /usr/bin/du
%support1 ALL=(ALL) NOPASSWD: LS, LESS, DU
O que eu consegui até agora está abaixo:
Cmnd_Alias LS = ls
Cmnd_Alias LESS = less
Cmnd_Alias DU = du
%support1 ALL=(ALL) NOPASSWD: LS, LESS, DU
O modelo se parece abaixo:
{% for item in commands %}
Cmnd_Alias {{ item|upper }} = {{ item }}
{% endfor %}
%{{ group }} ALL=(ALL) NOPASSWD: {% for item in commands %}
{{ item|upper}}{% if not loop.last %}, {% endif %}
{% endfor %}
vars
commands:
- ls
- less
- du
Até onde eu sei, o módulo de modelo ansible não tem nada que execute o comando no servidor remoto e imprima a saída, caso contrário, eu estava pensando em alterar o arquivo de modelo para se parecer com abaixo:
{% for item in commands %}
Cmnd_Alias {{ item|upper }} = `which {{ item }}`
{% endfor %}
%{{ group }} ALL=(ALL) NOPASSWD: {% for item in commands %}
{{ item|upper}}{% if not loop.last %}, {% endif %}
{% endfor %}
e a saída será como o que eu queria.
Existe algum outro método que possa torná-lo simples?
BTW eu já verifiquei este post