我想启用这样的 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:
我不明白这一点。当然Sxxxxubsystem
和Syyyubsystem
不在/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
即使模式不存在,您也可以查看参数以插入数据。