Puppet 在服务器和代理之间比较ini文件

Puppet 在服务器和代理之间比较ini文件,puppet,Puppet,是否可以在复制到代理之前比较ini文件? 例如,我在不同的代理上有sys.ini文件: Agent-1: sys.ini ---ip:x.x.x.1 Agent-2: sys.ini ---ip:x.x.x.2 现在我想在Puppet服务器上的sys.ini中添加新行,如下所示: > sys.ini > ---ip:x.x.x.x > ---name:x.x.x.x 我只想在agent-1和agent-2上的sys.ini中添加名称,可以吗? 不覆盖代理上的整个sys.i

是否可以在复制到代理之前比较ini文件? 例如,我在不同的代理上有sys.ini文件:

Agent-1:
sys.ini
---ip:x.x.x.1

Agent-2:
sys.ini
---ip:x.x.x.2
现在我想在Puppet服务器上的sys.ini中添加新行,如下所示:

> sys.ini
> ---ip:x.x.x.x
> ---name:x.x.x.x
我只想在agent-1和agent-2上的sys.ini中添加名称,可以吗? 不覆盖代理上的整个sys.ini

提前谢谢

问候,,
Andy

听起来像是要确保文件中存在一行,而不替换或管理文件的全部内容

您可以使用puppetlabs/stdlib模块中的
文件行
资源执行此操作


文件在复制到代理之前已自动进行比较,而这种比较对您正在寻找的功能没有帮助。是否有理由只管理一行而不管理文件<代码>文件行
from
stdlib
可以做到这一点,但我看不出你的问题中没有理由不管理整个文件。感谢你的amswer@Matt Schuchard,是的,我有一个原因,我有40多个代理,sys.ini中的所有键都有不同的值,因此,我只想比较sys.ini中可用的密钥。不要添加它,否则使用“default”值将新密钥添加到文件中。是的,我在另一种情况下已经使用文件行:-)好的,根据提供的信息,使用
file
管理整个文件和使用
file\u行
管理行都可以为您做到这一点。我们中的一个人可以为你写一个答案,给出一个更具体的问题,包括你迄今为止尝试过的内容和结果。再次感谢你的回答@MattSchuchard我将开始将文件与文件结合起来,这是一个良好的开始,之后我将发布解决方案或进一步的问题,当我。。。再次感谢Hanks的回答@Mike Marseglia,如果该行不存在,也可以将其添加到sys.ini?Hi@Andy<代码>文件\行
将在文件末尾添加该行(如果该行不存在)。
file_line { 'name_line':
  path => 'sys.ini',
  line => '---name:whatever',
}