我正在使用以下状态尝试注释掉文件中的两行:
/etc/cloud/cloud.cfg:
file.comment:
- regex: ^ - set_hostname
- regex: ^ - update_hostname
不幸的是,正如预期的那样,它只使用了后者的正则表达式行,而忽略了第一个。
如何使用 file.comment 注释掉文件中的多行?
答案1
有点黑客风格,但你可以用或链接正则表达式:
/etc/cloud/cloud.cfg:
file.comment:
- regex: ^ - set_hostname|^ - update_hostname
答案2
经过一整晚的努力,我找到了一个可行的解决方案。
以下是解决方案不起作用:
/etc/cloud/cloud.cfg:
file.comment:
- regex: ^ - set_hostname
/etc/cloud/cloud.cfg:
file.comment:
- regex: ^ - update_hostname
之所以行不通,是因为该/etc/cloud/cloud.cfg
位被用作状态的 ID,而 SLS 文件中不会有两个相同的 ID,因为 ID 是全局的。不过,还有另一种方式来写入状态:
comment_set_hostname:
file.comment:
- name: /etc/cloud/cloud.cfg
- regex: ^ - set_hostname
comment_update_hostname:
file.comment:
- name: /etc/cloud/cloud.cfg
- regex: ^ - update_hostname
此版本在状态中手动设置文件,而不是将其作为状态的 ID。这样,我就可以解决我的问题。