2

Puppet のsetmコマンドで1 つのプロパティ名 ( " 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>
4

1 に答える 1

2

そこにはかなりの問題があります。それらを1つずつ処理しましょう。

  • Puppet コードが示唆するようにandノードがないため、提供するdomain.xmlコードが間違っているようです。あなたが提供したコードにはさらに2つのレベルがあると思います:domainserver-groups

    <domain>
      <server-groups>
        <!-- the rest of the file -->
      <server-groups>
    <domain>
    
  • andcontextを使用する場合は設定する必要はありません。自動ですincllens

  • setm最初のパラメーターは Augeas がループするノードセット、2 番目のパラメーターは設定するサブノード、3 番目のパラメーターは値です。
  • やりたい変更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",
 }
于 2015-11-12T07:26:04.583 に答える