Tôi đang cố gắng tạo một tập tin sudoers với mẫu ansible. Các tập tin sudoers sẽ trông như dưới đây:
Cmnd_Alias LS = /bin/ls
Cmnd_Alias LESS = /usr/bin/less
Cmnd_Alias DU = /usr/bin/du
%support1 ALL=(ALL) NOPASSWD: LS, LESS, DU
Những gì tôi đã quản lý cho đến nay là dưới đây:
Cmnd_Alias LS = ls
Cmnd_Alias LESS = less
Cmnd_Alias DU = du
%support1 ALL=(ALL) NOPASSWD: LS, LESS, DU
Mẫu trông như dưới đây:
{% 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 %}
lọ
commands:
- ls
- less
- du
Theo như tôi biết, mô-đun mẫu ansible không có bất cứ thứ gì sẽ thực thi lệnh trong máy chủ từ xa và in đầu ra nếu không tôi đã nghĩ đến việc thay đổi tệp mẫu để trông như dưới đây:
{% 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 %}
và đầu ra sẽ giống như những gì tôi muốn.
Có phương pháp nào khác có thể làm cho nó đơn giản?
BTW Tôi đã kiểm tra bài này