如何在某些条件下使用 Setm
How to use Setm with some condition
我想用 setm 命令和 Puppet 中的约束更改一个 属性 名称 ( "modcluster.proxylist" )。以下代码不检查我的约束。非常感谢任何帮助。
以下是我想更改的来源 XML。
约束:
在下面,Two Group 没有 属性 名称。在这些组中,不应应用更改。
<server-groups>
<server-group name="ServiceGroupOne" profile="full-ha">
<system-properties>
<property name="jboss.default.multicast.address" value="232.0.2.20" boot-time="true"/>
<property name="modcluster.proxylist" value="192.168.79.77:7777" boot-time="true"/>
<property name="modcluster.lbgroup" value="SearchGroupOne" boot-time="true"/>
</system-properties>
</server-group>
<server-group name="ServiceGroupTwo" profile="full-ha">
<system-properties>
<property name="jboss.default.multicast.address" value="232.0.2.20" boot-time="true"/>
<property name="modcluster.lbgroup" value="SearchGroupTwo" boot-time="true"/>
</system-properties>
</server-group>
<server-group name="ServiceGroupThree" profile="full-ha">
<system-properties>
<property name="modcluster.lbgroup" value="CommonSearchGroup" boot-time="true"/>
<property name="modcluster.proxylist" value="192.168.79.77:7777" boot-time="true"/>
<property name="jboss.default.multicast.address" value="232.0.2.20" boot-time="true"/>
</system-properties>
</server-group>
<server-group name="ServiceGroupFour" profile="full-ha">
</server-group>
</server-groups>
Augeas代码:
以下代码编辑所有服务器组。它还插入了我们没有 属性( modcluster.proxylist).
的第二和第四服务器组
augeas { "jboss_domain_config":
incl => "${dc_home}/domain/configuration/domain.xml",
lens => "Xml.lns",
changes => "setm /files/${dc_home}/domain/configuration/domain.xml/domain/server-groups/server-group system-properties/property[#attribute/name='modcluster.proxylist']/#attribute/value ${proxylist}",
require => File["${dc_home}/domain/configuration/domain.xml"],
}
综合您的需求,您想要:
- Select
modcluster.proxylist
个已经存在的属性
- 将它们的值替换为
${proxylist}
应该这样做:
augeas { "jboss_domain_config":
incl => "${dc_home}/domain/configuration/domain.xml",
lens => "Xml.lns",
changes => "setm domain/server-groups/server-group/system-properties/property/#attribute[name='modcluster.proxylist'] value ${proxylist}",
}
我想用 setm 命令和 Puppet 中的约束更改一个 属性 名称 ( "modcluster.proxylist" )。以下代码不检查我的约束。非常感谢任何帮助。
以下是我想更改的来源 XML。
约束: 在下面,Two Group 没有 属性 名称。在这些组中,不应应用更改。
<server-groups>
<server-group name="ServiceGroupOne" profile="full-ha">
<system-properties>
<property name="jboss.default.multicast.address" value="232.0.2.20" boot-time="true"/>
<property name="modcluster.proxylist" value="192.168.79.77:7777" boot-time="true"/>
<property name="modcluster.lbgroup" value="SearchGroupOne" boot-time="true"/>
</system-properties>
</server-group>
<server-group name="ServiceGroupTwo" profile="full-ha">
<system-properties>
<property name="jboss.default.multicast.address" value="232.0.2.20" boot-time="true"/>
<property name="modcluster.lbgroup" value="SearchGroupTwo" boot-time="true"/>
</system-properties>
</server-group>
<server-group name="ServiceGroupThree" profile="full-ha">
<system-properties>
<property name="modcluster.lbgroup" value="CommonSearchGroup" boot-time="true"/>
<property name="modcluster.proxylist" value="192.168.79.77:7777" boot-time="true"/>
<property name="jboss.default.multicast.address" value="232.0.2.20" boot-time="true"/>
</system-properties>
</server-group>
<server-group name="ServiceGroupFour" profile="full-ha">
</server-group>
</server-groups>
Augeas代码:
以下代码编辑所有服务器组。它还插入了我们没有 属性( modcluster.proxylist).
的第二和第四服务器组augeas { "jboss_domain_config":
incl => "${dc_home}/domain/configuration/domain.xml",
lens => "Xml.lns",
changes => "setm /files/${dc_home}/domain/configuration/domain.xml/domain/server-groups/server-group system-properties/property[#attribute/name='modcluster.proxylist']/#attribute/value ${proxylist}",
require => File["${dc_home}/domain/configuration/domain.xml"],
}
综合您的需求,您想要:
- Select
modcluster.proxylist
个已经存在的属性 - 将它们的值替换为
${proxylist}
应该这样做:
augeas { "jboss_domain_config":
incl => "${dc_home}/domain/configuration/domain.xml",
lens => "Xml.lns",
changes => "setm domain/server-groups/server-group/system-properties/property/#attribute[name='modcluster.proxylist'] value ${proxylist}",
}