![](/img/trans.png)
[英]How do I properly create during runtime and read the properties that are stored in the config file that saved during a previous session?
[英]puppet, augeas and properties lens: file not saved because no difference detected
我想使用puppet和augeas編輯Java屬性文件。 我正在使用此似乎正確的代碼,但實際上這不會修改文件。
$disabledalgo = "SSLv3, RC4, MD5withRSA, DH keySize < 768, EC keySize < 224"
$incl = "/tmp/java.security"
augeas { "tlsconf":
lens => "Properties.lns",
incl => "$incl",
changes => "set 'jdk.tls.disabledAlgorithms' '$disabledalgo'",
onlyif => "get 'jdk.tls.disabledAlgorithms' != '$disabledalgo'",
}
屬性文件就是這樣
grep jdk.tls.disabledAlgorithms -A 1 /tmp/java.security
jdk.tls.disabledAlgorithms=TLSv1.1, SSLv3, RC4, MD5withRSA, DH keySize < 768, \
EC keySize < 224
當我啟動人偶時,我有這個輸出。
Debug: Augeas[tlsconf](provider=augeas): Opening augeas with root /, lens path , flags 64
Debug: Augeas[tlsconf](provider=augeas): Augeas version 1.4.0 is installed
Debug: Augeas[tlsconf](provider=augeas): Will attempt to save and only run if files changed
Debug: Augeas[tlsconf](provider=augeas): sending command 'set' with params ["/files/tmp/java.security/jdk.tls.disabledAlgorithms", "SSLv3, RC4, MD5withRSA, DH keySize < 768, EC keySize < 224"]
Debug: Augeas[tlsconf](provider=augeas): Skipping because no files were changed
我希望jdk.tls.disabledAlgorithms
包含SSLv3, RC4, MD5withRSA, DH keySize < 768, EC keySize < 224
編輯 :當值以完全不同的順序排列時,我觀察到相同的問題
jdk.tls.disabledAlgorithms=TLSv1, SSLv3, TLSv1.1, RC4, MD5withRSA, DH keySize < 768, \
EC keySize < 224
即使我從文件中刪除RC4
,它也不會更改。
在創建問題之前,我閱讀了puppet中的augeas不會更改文件,但是該問題並不適用,因為context
參數似乎正確。
謝謝
“ Properties
鏡頭具有一種解析多行條目的獨特方式,因為它創建了沒有標簽的子節點,因此無法管理它們。
我建議您在修改密鑰之前先刪除它:
augeas { "tlsconf":
lens => "Properties.lns",
incl => $incl,
changes => [
'rm jdk.tls.disabledAlgorithms',
"set jdk.tls.disabledAlgorithms '$disabledalgo'",
],
}
它不會保留條目在文件中的位置,但是應該可以工作。 還要注意,這里僅onlyif
是不必要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.