Puppet 木偶-完全删除ini_设置

Puppet 木偶-完全删除ini_设置,puppet,manifest,ini,Puppet,Manifest,Ini,我正在使用puppet 4.5.3和ini_设置模块版本1.4.2。我需要能够删除ini文件中的节。例如: [header] ip = '1.1.1.1' hostname = 'myserver' port = 80 我可以使用sure=>缺席参数删除ini文件的每个部分,但是我找不到一种方法来删除节头,或者最好在一个命令中删除整个部分 我剩下的是 [header] 有人知道如何做到这一点吗?不幸的是,在同一个文件中还有其他章节需要保留,因此我不能简单地删除该文件 谢谢,使用Augeas类

我正在使用puppet 4.5.3和ini_设置模块版本1.4.2。我需要能够删除ini文件中的节。例如:

[header]
ip = '1.1.1.1'
hostname = 'myserver'
port = 80
我可以使用
sure=>缺席
参数删除ini文件的每个部分,但是我找不到一种方法来删除节头,或者最好在一个命令中删除整个部分

我剩下的是

[header]
有人知道如何做到这一点吗?不幸的是,在同一个文件中还有其他章节需要保留,因此我不能简单地删除该文件

谢谢,

使用Augeas类型:

augeas { 'remove_ini_header':
  incl    => '/etc/example.ini',
  lens    => 'IniFile.lns_loose',
  changes => 'rm section[. = "header"]',
}
为了稍微分解一下,首先我使用内置的
INI文件.lns_loose
镜头(即INI文件的“通用”松散解析)和
augtool
查看树的当前状态:

$ augtool -t "IniFile.lns_loose incl /etc/example.ini"
augtool> print /files/etc/example.ini
/files/etc/example.ini
/files/etc/example.ini/section = "header"
/files/etc/example.ini/section/ip = "'1.1.1.1'"
/files/etc/example.ini/section/hostname = "'myserver'"
/files/etc/example.ini/section/port = "80"
整个节位于树的一部分,因此为该节调用
rm
将删除整个子树


要匹配标题部分,需要搜索名为
部分
的节点,其中值(右侧)为
标题
。命令的
[.=“header”]
部分用于筛选具有值
header

的节点。如果使用augeas删除文件的大部分,包括头,您可能会运气更好:。这看起来对你有吸引力吗?这是我在屈服于奥格斯的疯狂之前的最后一次成功尝试:(我也不是特别喜欢奥格斯,但这可能是你在这里的最佳选择。