gpt4 book ai didi

xml - 如何在 puppet 中使用 augeas 创建格式良好的 xml?

转载 作者:数据小太阳 更新时间:2023-10-29 02:24:04 24 4
gpt4 key购买 nike

我正在尝试使用 puppet 来编辑 jenkins config.xml。出于各种原因,我认为 augeas 最有意义,而且我几乎拥有我需要的东西,但格式非常粗糙。

这是我的 puppet 文件:

augeas { 'jenkins_config.xml' :
incl => '/tmp/config.xml',
lens => 'Xml.lns',
context => '/files/tmp/config.xml/hudson',
changes => [
"set securityRealm/#attribute/class hudson.security.PAMSecurityRealm",
"set securityRealm/#attribute/plugin pam-auth@1.0",
"set securityRealm/serviceName/#text sshd",
],
}

我在找什么:

<hudson>
<securityRealm class="hudson.security.PAMSecurityRealm" plugin="pam-auth@1.0">
<serviceName>sshd</serviceName>
</securityRealm>
</hudson>

我得到的:

<hudson>
<securityRealm class="hudson.security.PAMSecurityRealm" plugin="pam-auth@1.0"><serviceName>sshd</serviceName>
</securityRealm>
</hudson>

内容不错(顺便说一下,这真是太棒了),但阅读起来并不有趣。 augeas 可以为我处理缩进和换行吗?如果我必须自己做,任何人都可以提供有关缩进的提示吗?我的尝试都失败了。

最佳答案

简短的回答是你不需要。

Augeas(目前)不允许您管理它,它只允许您按原样编辑文件,并使用默认值添加新参数。此外,它无法检测当前身份以重新使用它。

实现您想要的效果的一种方法是使用 pretty-print 命令,并在 Augeas 更改后插入它,例如:

augeas { 'manage your file':
changes => [ 'blah'],
} ~>
exec { 'pretty print file':
command => '/bin/pretty-print-cmd file',
refreshonly => true,
}

这将在应用 Augeas 更改时触发 pretty-print 命令。例如,对于 pretty-print ,您可以使用 xmlstarlet

关于xml - 如何在 puppet 中使用 augeas 创建格式良好的 xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19823182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com