我使用file.replace,并希望将其用于文件列表,而不是单个文件。文件列表来自全局。
示例:我想修改/etc/ImageMagick*/policy.xml。
文件可以是/etc/ImageMagick-6/policy.xml或/etc/ImageMagick/policy.xml或者..。
"file.replace“中的AFAIK " name”只能是一个文件名。
如何用盐解决这个问题?
盐类用户列表中的相关讨论:https://groups.google.com/forum/#!topic/salt-users/75OpiflpObA
发布于 2019-01-17 12:37:59
你可以分两步完成:
file.find匹配的文件列表file.replace应用于列表中的每个文件。注意:这只是实现你目标的方法,我没有为你准备好技术解决方案。
发布于 2019-01-29 08:42:27
这样做是可行的:
/etc/foo.test:
file.managed:
- source: salt://tmp/dummy
{% for file in salt['cmd.run']('ls -1 /etc/foo*.test').splitlines() %}
{{ file }}_dummy_to_real:
file.replace:
- name: {{ file }}
- pattern: dummy
- repl: hitme
{% endfor %}但是,只有当/etc/foo.test在salt开始执行之前就已经存在时,它才能工作。
如果/etc/foo.test是在相同的salt运行过程中创建的,那么这将失败。
https://serverfault.com/questions/949505
复制相似问题