Salt:file.replace:ignore_if_missing 被忽略了吗?

Salt:file.replace:ignore_if_missing 被忽略了吗?

我想启用这样的 fstp 服务器日志记录:https://serverfault.com/a/74234/90324

但盐什么也没做。我把它简化成这样:

enable_logging_of_sftp:
  file.replace:
    - name: /etc/ssh/sshd_config
    - pattern: Sxxxxubsystem
    - repl: Syyyubsystem
    - ignore_if_missing: False

尽管如此,盐还是说:

      ID: enable_logging_of_sftp
Function: file.replace
    Name: /etc/ssh/sshd_config
  Result: True
 Comment: No changes needed to be made
 Started: 11:09:24.356010
Duration: 15.231 ms
 Changes:   

我不明白这一点。当然SxxxxubsystemSyyyubsystem不在/etc/ssh/sshd_config

由于 ignore_if_missing 缺失为 False(无论如何这是默认值),我认为我应该收到一条错误消息。

如果文件中没有和,pattern为什么没有错误消息?repl

由于我误读了文档,因此出现了上述问题。以下是处理我的用例的后续问题:Salt:如果 file.replace 没有找到任何要替换的内容,则引发错误

答案1

如果您的文件存在,即使文件中不存在该模式,您也永远不会收到错误。

引用此页面https://docs.saltstack.com/en/latest/ref/states/all/salt.states.file.html#salt.states.file.replace

忽略缺失值 : False

2016.3.4 版本中的新功能。

控制文件丢失时要做什么。如果设置为 False,状态将显示执行模块引发的错误。如果设置为 True,状态将仅报告无变化。

如果您想检测模式是否出现,我不知道该怎么做。但append_if_not_found即使模式不存在,您也可以查看参数以插入数据。

相关内容