也许我瞎了,但我找不到让salt-ssh
呼叫失败的方法,如果文件替换并未替换任何一行。
如果我提供的模式不匹配,那么我希望引起注意。
例子:
enable_foo:
file.replace:
- name: /etc/foo/foo.config
- pattern: DisallowBar
- repl: AllowBarUntilMidnight
- 案例 1:发现并替换了 DisallowBar,并且被替换了:OK
- Case2:AllowBarUntilMidnight 已在文件中:确定
- 案例 3:DisallowBar 和 AllowBarUntilMidnight 不在文件中:我希望 salt 失败。
答案1
Saltstack 是一个配置管理工具,因此当使用状态时,您可以定义您想要的内容,通常不必担心某件事是否完成时会收到警告。
因此,在您的示例中,我会说“您想用字符串 Y 替换模式 X”,就是这样。如果模式存在,Saltstack 会替换该模式,如果不存在,则不执行任何操作。
此外,在配置管理中,您通常希望状态是“幂等的”。这意味着连续执行必须产生相同的结果。无论您执行一次还是 1000 次状态都应该相同。我不确定您想要做的事情是否真的由 saltstack 提供。
更新:当然,你可以用 saltstack 做你想做的事,但你可能需要分成两个状态:一个检查当前状态,最终失败(检查 failhardhttps://docs.saltstack.com/en/latest/ref/states/failhard.html)以及另一个替换