Configuration puppet、augeas和properties镜头:未保存文件,因为未检测到差异

Configuration puppet、augeas和properties镜头:未保存文件,因为未检测到差异,configuration,puppet,augeas,Configuration,Puppet,Augeas,我想使用puppet和augeas编辑java属性文件。我使用的代码看起来是正确的,但实际上这并没有修改文件 $disabledalgo = "SSLv3, RC4, MD5withRSA, DH keySize < 768, EC keySize < 224" $incl = "/tmp/java.security" augeas { "tlsconf": lens => "Properties.lns", incl =>

我想使用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'",
}
即使我从文件中删除
RC4
,它也不会改变它

在创建问题之前,我读了一遍,但问题不适用,因为
上下文
参数似乎正确


多亏了属性
镜头有一种解析多行条目的特殊方式,因为它创建了没有标签的子节点,因此无法管理它们

我建议在修改密钥之前先删除它:

augeas { "tlsconf":
 lens           => "Properties.lns",
 incl           => $incl,
 changes        => [
                     'rm jdk.tls.disabledAlgorithms',
                     "set jdk.tls.disabledAlgorithms '$disabledalgo'",
                   ],
}
它不会保留条目在文件中的位置,但应该可以工作。还要注意,此处不需要
onlyif

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=TLSv1, SSLv3, TLSv1.1, RC4, MD5withRSA, DH keySize < 768, \
    EC keySize < 224
augeas { "tlsconf":
 lens           => "Properties.lns",
 incl           => $incl,
 changes        => [
                     'rm jdk.tls.disabledAlgorithms',
                     "set jdk.tls.disabledAlgorithms '$disabledalgo'",
                   ],
}