0
我在嘗試使用puppet編輯weblogic config.xml文件來完成SSL配置部分。如何使用puppet中的augeas在給定的位置創建新的xml節點?
下面的啓動WebLogic config.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<domain ...
...
<server>
<name>AdminServer</name>
<ssl>
<name>AdminServer</name>
<enabled>true</enabled>
<listen-port>7336</listen-port>
</ssl>
下面什麼,我需要得到:
<?xml version="1.0" encoding="UTF-8"?>
<domain ...
...
<server>
<name>AdminServer</name>
<ssl>
<name>AdminServer</name>
<enabled>true</enabled>
<hostname-verifier xsi:nil="true"></hostname-verifier>
<hostname-verification-ignored>false</hostname-verification-ignored>
<client-certificate-enforced>false</client-certificate-enforced>
<listen-port>7336</listen-port>
<two-way-ssl-enabled>true</two-way-ssl-enabled>
<server-private-key-alias>...alias...</server-private-key-alias>
<server-private-key-pass-phrase-encrypted>...key-pass-phrase... </server-private-key-pass-phrase-encrypted>
</ssl>
下面我木偶代碼:
augeas { "ssl_config_${instance}":
lens => "Xml.lns",
require => File["${config_instance}"],
incl => "${config_instance}",
changes => [
"set domain/server/ssl/hostname-verifier/#attribute/xsi:nil true",
"set domain/server/ssl/hostname-verification-ignored/#text false",
"set domain/server/ssl/client-certificate-enforced/#text false",
"set domain/server/ssl/two-way-ssl-enabled/#text true",
"set domain/server/ssl/server-private-key-alias/#text ${server_private_key_alias}",
"set domain/server/ssl/server-private-key-pass-phrase-encrypted/#text ${server_private_key_pass_phrase}",
],
}
下面是我所得到:
...
<ssl>
<name>AdminServer</name>
<enabled>true</enabled>
<listen-port>7336</listen-port>
<hostname-verifier xsi:nil="true"></hostname-verifier>
<hostname-verification-ignored>false</hostname-verification-ignored>
<client-certificate-enforced>false</client-certificate-enforced>
<two-way-ssl-enabled>true</two-way-ssl-enabled>
<server-private-key-alias>default</server-private-key-alias>
<server-private-key-pass-phrase-encrypted>...key-pass-phrase...
</server-private-key-pass-phrase-encrypted>
</ssl>
正如您所看到的,節點是在最後一個節點之後添加的,但是這樣我們會使模式無效。
有什麼方法可以指定新節點應該添加到哪個位置?
預先感謝任何反饋 問候 ferp
對augeas並不熟悉,但這個任務可以用任何通用語言(Java,C#,Perl,PHP,Python,R,VB)來處理。建議你使用什麼。希望你不是一個用錘子做所有工作的木匠! – Parfait
@ferp所以你的問題是'listen-port'應該被正確放置,對吧?如果是這樣,這意味着你需要使用'insert'而不是'set',但是冪等難以實現。 –
@Parfait所有這些語言都可以編輯XML,但使用Puppet進行編輯是另一回事。 –