次のようにデータを出力するカスタムレンズを使用して、augeasに設定ファイルがあります。
/files/opt/../server.conf/target[1] = "general"
/files/opt/../server.conf/target[1]/serverName = "XXX"
/files/opt/../server.conf/target[1]/guid = "XXX0XXX"
/files/opt/../server.conf/target[2] = "sslConfig"
/files/opt/../server.conf/target[2]/sslKeysfilePassword = "$1$XXXXX"
これはうまく機能します-一部のターゲット名にはコロンなどが含まれているため、target [x]形式を使用する必要があります。
この構文を使用して私のINIに新しいセクションを作成するための正しいins構文は何ですか?
次を使用できます。
set /files/opt/.../server.conf/target[. = 'newsection'] 'newsection'
セクションがまだ存在しない場合は、セクションが作成されます。その後、それを使用して、このセクションの下にキーを追加できます。このコードはべき等であるため、キーが必要なすべてのセクションで安全に使用できます。セクションがまだ存在しない場合にのみ作成されるためです。
記録として、新しいセクションを既存のセクションの前に表示したい場合は、couldins
を使用します。例:
# Add a new target node before the sslConfig target
ins target before /files/opt/.../server.conf/target[. = 'sslConfig']
# Set the target name to "newsection" by matching the node right before the "sslConfig" target
set /files/opt/.../server.conf/target[following-sibling::*[1][label() = 'target'][. = 'sslConfig']] 'newsection'
上記のコードは、最初に貼り付けたコードとは異なり、notべき等であることに注意してください。 AugeasをPuppetで使用する場合は、onlyif
ステートメントを追加して、そのような変更をべき等な方法で適用することをお勧めします。