我有一个问题,我希望有人可能有答案。基本上我正在做的是尝试确保我总是使用一个固定的,稍微旧版本的phpunit,我将其放在我模块的文件资源中。
清单:
file
{
"/usr/bin/phpunit":
ensure => file,
owner => 'root',
group => 'root',
mode => 0755,
source => "puppet:///modules/php/phpunit"
}
准备:我下载当前('错误')的phpunit版本并将其放在/ usr / bin中。
所以第一次运行的木偶成功了:
Notice: Compiled catalog for <hostname> in environment production in 3.06 seconds
Notice: /Stage[main]/Php/File[/usr/bin/phpunit]/content: content changed '{md5}9f61f732829f4f9e3d31e56613f1a93a' to '{md}38789acbf53196e20e9b89e065cbed94'
Notice: /Stage[main]/Httpd/Service[httpd]: Triggered 'refresh' from 1 events
Notice: Finished catalog run in 15.86 seconds
然后我下载当前(仍然'错误')的phpunit版本并将其再次放入/ usr / bin。
这次木偶运行失败。
Notice: Compiled catalog for <hostname> in environment production in 2.96 seconds
Error: Could not back up /usr/bin/phpunit: Got passed new contents for sum {md5}9f61f732829f4f9e3d31e56613f1a93a
Error: Could not back up /usr/bin/phpunit: Got passed new contents for sum {md5}9f61f732829f4f9e3d31e56613f1a93a
Error: /Stage[main]/Php/File[/usr/bin/phpunit]/content: change from {md5}9f61f732829f4f9e3d31e56613f1a93a to {md5}38789acbf53196e20e9b89e065cbed94 failed: Could not back up /usr/bin/phpunit: Got passed new contents for sum {md5}9f61f732829f4f9e3d31e56613f1a93a
是什么给出的?如果我从我的filebucket中删除文件(/ var / lib / puppet / clientbucket / 9 / f / 6/1 / f / 7/3/2 / 9f61f732829f4f9e3d31e56613f1a93a /),它将再次运行...用于下一次运行,但是不是那之后的那个。
我做错了什么?
我很感激任何意见和提前感谢。
答案 0 :(得分:2)
也有这个错误。我结合前两个答案解决了这个问题。
首先,我必须通过运行以下命令删除客户机节点上的/ var / lib / puppet / clientbucket:
{{1}}
这样做只会让它再次运行。
然后我必须标记backup =&gt; false以阻止它重新创建文件,错过任何一步都无法为我解决它。接受的答案是错误的,说有
&#34;除了升级之外没有解决方案&#34;。
答案 1 :(得分:1)
作为解决方法,您可以在文件资源中设置backup => false
。当然,这有点不安全。
答案 2 :(得分:0)
除了升级之外没有解决方案,因为在某些版本的puppet中存在错误地处理包含UTF8和二进制字符的文件的错误,并且会导致错误消息。
https://tickets.puppetlabs.com/browse/PUP-1038
我用作解决方法的荒谬过于复杂的解决方案是在文件资源中有一个.tar文件,该文件通知exec解压缩并将实际可执行文件放在正确的目录中,确保后者的时间戳比前任的。
它远非理想,但它适用于像我这样的情况,将木偶升级到最新版本并不具备吸引力。
答案 3 :(得分:0)
我能够通过删除客户端节点上的/var/lib/puppet/clientbucket
来解决同样的问题。
此节点的磁盘空间不足,因此puppet可能错误地将空文件存储在那里。