文章目录

Puppet 3.x Certificate verify fails without indications

在部署Puppet时,要求Master的版本高于Client的版本。最近我在很少见的RHEL4上安装puppet时遇到无法获取证书的情况。

环境如下:
Puppet Master: Centos 6.4 openssl 1.0 Ruby 1.8.7 Puppet 3.3.2
Puppet Client: RedHat 4 openssl 0.9.7 Ruby 1.8.7 Puppet 3.3.2

最开始尝试时,Master采用yum安装,Client采用源码包编译。
client端运行 puppet agent -t --server puppet.domain.com 时提示:

1
2
Error: Could not request certificate: Unsupported digest algorithm (SHA256).
Exiting; failed to retrieve certificate and waitforcert is disabled

这时发现应该是版本不兼容导致,后上网在google bbs查询到:

1
Puppet 3.1.0 will never work with an agent that run openssl library version 0.9.7 (which is the version running on RH4)

可以采用的方法有:
1、升级openssl 至1.0
2、尝试降puppet版本
3、修改certificate_signer.rb文件

考虑到后续的升级以及维护上考虑。暂时先使用方法2.进行puppet降级处理。
最终得到结论为:
RHEL4 需要在openssl 0.9.7 puppet 2.7.x 下才可以正常工作。
但由于与puppet 3.x 版本存在冲突。因此,需要将Master的版本同时降至2.7.x

最终的环境为:

1
2
Puppet Master: Centos 6.4 openssl 0.9.7 Ruby 1.8.7  Puppet 2.7.20
Puppet Client: RedHat 4 openssl 0.9.7 Ruby 1.8.7  Puppet 2.7.20

各位在使用puppet时还是需要多注意下环境以及版本依赖。

我只能吐槽下公司的RHEL4了。

参考:https://groups.google.com/forum/#!msg/puppet-users/UJecs2MgkZo/OQ7-FQ4QXiEJ

未完待续,有空再试验下将openssl的版本进行升级,测试puppet 3.x是否可行。

文章目录