Ich versuche, eine Sudoers-Datei mit einer ansiblen Vorlage zu erstellen. Die sudoers-Datei sollte wie folgt aussehen:
Cmnd_Alias LS = /bin/ls
Cmnd_Alias LESS = /usr/bin/less
Cmnd_Alias DU = /usr/bin/du
%support1 ALL=(ALL) NOPASSWD: LS, LESS, DU
Was ich bisher geschafft habe, ist unten:
Cmnd_Alias LS = ls
Cmnd_Alias LESS = less
Cmnd_Alias DU = du
%support1 ALL=(ALL) NOPASSWD: LS, LESS, DU
Die Vorlage sieht wie folgt aus:
{% 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
Soweit ich weiß, verfügt das Ansible-Vorlagenmodul über nichts, was den Befehl auf dem Remote-Server ausführt und die Ausgabe druckt. Andernfalls habe ich daran gedacht, die Vorlagendatei so zu ändern, dass sie wie folgt aussieht:
{% 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 %}
und die Ausgabe wird so sein, wie ich es wollte.
Gibt es eine andere Methode, die es einfach machen kann?
Übrigens habe ich diesen Beitrag bereits überprüft