人偶、augeas 和属性镜头:文件未保存,因为未检测到差异
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
当我启动 puppet 时,我有这个输出。
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
它也不会改变它。
在创建问题之前,我阅读了 但问题并不适用,因为 context
参数似乎正确。
谢谢
Properties
镜头有一种特殊的多行条目解析方式,它创建没有标签的子节点,因此无法管理它们。
我建议在修改之前删除密钥:
augeas { "tlsconf":
lens => "Properties.lns",
incl => $incl,
changes => [
'rm jdk.tls.disabledAlgorithms',
"set jdk.tls.disabledAlgorithms '$disabledalgo'",
],
}
它不会保留条目在文件中的位置,但应该可以。另请注意,此处不需要 onlyif
。
我想使用 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
当我启动 puppet 时,我有这个输出。
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
它也不会改变它。
在创建问题之前,我阅读了 context
参数似乎正确。
谢谢
Properties
镜头有一种特殊的多行条目解析方式,它创建没有标签的子节点,因此无法管理它们。
我建议在修改之前删除密钥:
augeas { "tlsconf":
lens => "Properties.lns",
incl => $incl,
changes => [
'rm jdk.tls.disabledAlgorithms',
"set jdk.tls.disabledAlgorithms '$disabledalgo'",
],
}
它不会保留条目在文件中的位置,但应该可以。另请注意,此处不需要 onlyif
。