いくつかの XML ファイルを編集する必要があります。削除して設定しても問題ありませんが、Augeas のみを使用して XML ファイルを並べ替えることができるかどうか、またどのようにできるかわかりません。
誰かがそれをやったことがありますか?
パペット、ルビー、シェルスクリプトを使用しています。augtoolだけでなく、パペットでもaugeasを使用できます。
これは私の正確なタスクです:要素名、属性名、テーブル、および列で要素を並べ替えます
実際に多くのテーブルを含む大きな XML ファイルがあります。これは 1 つのテーブルの例です。
<table name="validation_rule" numRows="6" remarks="" schema="public" type="TABLE">
<column autoUpdated="false" digits="0" id="0" name="id" nullable="false" remarks="" size="10" type="int4">
<child column="validation_rule_id" foreignKey="meta_field_name_validation_rule_id_fkey" implied="false" onDeleteCascade="false" table="meta_field_name"/>
<child column="validation_rule_id" foreignKey="preference_type_validation_rule_id_fkey" implied="false" onDeleteCascade="false" table="preference_type"/>
<child column="validation_rule_id" foreignKey="validation_rule_attributes_validation_rule_id_fkey" implied="false" onDeleteCascade="false" table="validation_rule_attributes"/>
</column>
<column autoUpdated="false" digits="0" id="1" name="rule_type" nullable="false" remarks="" size="25" type="varchar"/>
<column autoUpdated="false" digits="0" id="2" name="enabled" nullable="true" remarks="" size="1" type="bool"/>
<column autoUpdated="false" digits="0" id="3" name="optlock" nullable="false" remarks="" size="10" type="int4"/>
<primaryKey column="id" sequenceNumberInPK="1"/>
<index name="validation_rule_pkey" unique="true">
<column ascending="true" name="id"/>
</index>
</table>
これは、同じサンプル ファイルから削除する方法です。
augtool> set /augeas/load/xml/lens "Xml.lns"
augtool> set /augeas/load/xml/incl /home/ESSENT/i.camilovic/test/test.xml
augtool> load
augtool> rm /files/home/ESSENT/i.camilovic/test/test.xml/TopLevel/FooBar
augtool> save
これは、他の目的で使用する puppet のコード サンプルです。
augeas { "${name} ReverseBuild Threshold fails":
lens => 'Xml.lns',
incl => $config_file,
context => "${context}/triggers/jenkins.triggers.ReverseBuildTrigger/threshold",
changes => [
"set name/#text 'FAILURE'",
"set ordinal/#text '2'",
"set color/#text 'RED'",
"set completeBuild/#text 'true'",
],
notify => Exec['reload-configuration'],
require => Augeas["${name} Upstream Projects"],
}