我试图像这样将一行回显到 sudoers 文件中,但我无法找出该特定命令所需的正确语法。
gwconfig:
cmd.run:
{% if grains['ip4_gw'] == '192.168.1.1' %}
- name: echo "%account_name ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
{% elif grains['ip4_gw'] == '192.168.1.2' %}
- name: echo "not working" >> /tmp/gwtest.txt
{% endif %}
这失败了
渲染 SLS 'base:linux.oshardening' 失败:此处不允许映射值;12号线
我可以手动运行这个命令,它工作得很好。
如果我将 sudoers 行替换为类似这样的其他内容,那么也可以正常工作:
gwconfig:
cmd.run:
{% if grains['ip4_gw'] == '192.168.1.1' %}
- name: echo "working" >> /tmp/gwtest.txt
{% elif grains['ip4_gw'] == '192.168.1.2' %}
- name: echo "not working" >> /tmp/gwtest.txt
{% endif %}
vmname:
----------
gwconfig:
----------
__env__:
base
__sls__:
linux.test
cmd:
|_
----------
name:
echo "working" >> /tmp/gwtest.txt
- run
|_
----------
order:
10000
将其作为多行值运行似乎可行: