首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Salt:文件列表上的file.replace (全局)

Salt:文件列表上的file.replace (全局)
EN

Server Fault用户
提问于 2019-01-17 10:29:08
回答 2查看 1.3K关注 0票数 0

我使用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

EN

回答 2

Server Fault用户

发布于 2019-01-17 12:37:59

你可以分两步完成:

  1. 获取与file.find匹配的文件列表
  2. 创建一个循环,将函数file.replace应用于列表中的每个文件。

注意:这只是实现你目标的方法,我没有为你准备好技术解决方案。

票数 1
EN

Server Fault用户

发布于 2019-01-29 08:42:27

这样做是可行的:

代码语言:javascript
复制
/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运行过程中创建的,那么这将失败。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/949505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档