我想更改domain.xml(JBoss配置文件)中的值。请建议我使用示例示例来更改它的最佳方法。
我找到了以下方法。但不知道,如何将以下函数用于xml文件。
(i)inline_template
(ii)regsubst
我必须根据每个组更改以下四个属性。对于每个组,将更改4个属性的值。请建议我最好的行业实践标准。
<system-properties>
<property name="jboss.default.multicast.address" value="230.0.1.1" boot-time="true"/>
<property name="modcluster.balancer.name" value="mylb" boot-time="true"/>
<property name="modcluster.proxylist" value="172.28.168.153:6777" boot-time="true"/>
<property name="mycluster.modcluster.lbgroup" value="coollb" boot-time="true"/>
</system-properties>
答案 0 :(得分:3)
inline_template在master上执行,因此无法解决您的问题。
最简单的解决方案是erb模板。但这意味着你将从puppet控制整个文件,而不仅仅是属性。
最佳解决方案:似乎有一个针对xml的augeas镜头:https://twiki.cern.ch/twiki/bin/view/Main/TerjeAndersenAugeas
在模块中有一个erb模板(templates / jboss_config.xml.erb)
<bla bla>....
<system-properties>
<property name="jboss.default.multicast.address" value="<%= @multicast_address %>" boot-time="true"/>
<property name="modcluster.balancer.name" value="<%= @balancer_name %>" boot-time="true"/>
<property name="modcluster.proxylist" value="<%= @proxylist %>" boot-time="true"/>
<property name="mycluster.modcluster.lbgroup" value="<%= @lbgroup %>" boot-time="true"/>
</system-properties>
</bla bla>....
在你的puppet类中声明参数/变量(如果你想根据一些事实做覆盖,那些也可以来自hiera):
$multicast_address = '230.0.1.1'
$balancer_name = 'mylb'
$proxylist = '172.28.168.153:6777'
$lbgroup = 'coollb'
# and write your file:
file { 'jboss_config_file':
ensure => file,
path => '/path/to/jboss/config/file.xml',
content => template("${module_name}/jboss_config.xml.erb"),
}