jboss7.x - 如何在puppet中使用setm

标签 jboss7.x puppet jboss-eap-6 puppet-enterprise augeas

我想使用 Puppet 中的 setm 命令更改一个属性名称(“modcluster.proxylist”)。我的以下代码不起作用。非常感谢任何帮助。

    augeas { "jboss_domain_config":
            incl    =>      "/opt/domain.xml",
            lens    =>      "Xml.lns",
            context =>      "/files/opt/domain.xml",
            onlyif  =>      "match /files/opt/domain.xml/domain/server-groups/*/system-properties/*/#attribute/name modcluster.proxylist"
            changes =>      "setm /files/opt/domain.xml/domain/server-groups server-group[.]/system-properties/property[.]/#attribute/value kumaran",
    }

以下是我想要更改的源 XML。

<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"/>
            <property name="modcluster.proxylist" value="192.168.79.77:7777" 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>

最佳答案

里面有很多问题。让我们一一处理它们:

  • 您提供的 domain.xml 代码似乎是错误的,因为没有 domainserver-groups 节点作为您的 puppet 代码建议。我认为您提供的代码还有两个级别:

    <domain>
      <server-groups>
        <!-- the rest of the file -->
      <server-groups>
    <domain>
    
  • 使用incllens时不需要设置context,它是自动的

  • 您误解了 setm 的工作方式:第一个参数是 Augeas 将循环的节点集,第二个参数是要设置的子节点,第三个参数是值
  • 您想要使用 setm 进行的更改本质上是幂等的,这里确实没有必要使用 onlyif

结果如下:

augeas { "jboss_domain_config":
  incl    =>      "/tmp/domain.xml",
  lens    =>      "Xml.lns",
  changes =>      "setm domain/server-groups/server-group system-properties/property[#attribute/name='modcluster.proxylist']/#attribute/value kumaran",
 }

关于jboss7.x - 如何在puppet中使用setm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33664488/

相关文章:

puppet - epp 模板的键值哈希

converter - puppet Chef 转换器

enums - 使用 @XmlEnumValue 映射 JAX-RS 枚举

javascript - 从 a4j 调用 javascript :jsFunction in richfaces 3. 3.3

ssl - JBoss 7 和 Apache SSL

jboss - JBoss AS 7 中的 server.xml 等价物

jboss - 将 JBoss AS 7 远程处理为 AS 4,反之亦然

java - Puppet 启动 Tomcat 时汉字显示不正确,手动启动时可以正常工作

java - 删除超过 30 天的 server.log.yyyy-mm-dd jboss eap 6.2 standalone

java - 间歇性连接错误 - 连接超时 - mysql jboss java