2

我正在从 Ubuntu 10.04 运行 Puppet 版本 0.25.4。当我运行时:

puppetd --test

在一台机器上,这是我得到的错误:

err: Could not run Puppet configuration client: Could not retrieve local facts: 404 Not Found

我可以从我的主人那里“签署”机器证书,但在那之后,仅此而已。在另一台机器上运行相同版本的 Puppet,具有相同的配置,没有任何问题。

甚至通过:

--debug --verbose

因为命令行参数没有给我更多的线索。有任何想法吗?

= 更新以添加更多上下文 =

这是我在所有机器上的 puppet.conf 文件:

[main]
logdir = /var/log/puppet
vardir = /var/lib/puppet
ssldir = /var/lib/puppet/ssl
rundir = /var/run/puppet
factpath = $vardir/lib/facter
pluginsync = false
templatedir = $confdir/templates
prerun_command = /etc/puppet/etckeeper-commit-pre
postrun_command = /etc/puppet/etckeeper-commit-post

[puppetd]
server = puppet
report = true

这是运行的输出

puppetd --debug --verbose --test

从错误机器:

debug: Failed to load library 'selinux' for feature 'selinux'
debug: Puppet::Type::User::ProviderPw: file pw does not exist
debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does not exist
debug: Failed to load library 'ldap' for feature 'ldap'
debug: Puppet::Type::User::ProviderLdap: feature ldap is missing
debug: Puppet::Type::User::ProviderUser_role_add: file roleadd does not exist
debug: /File[/var/lib/puppet/ssl/private]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/client_yaml]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/private_keys]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/run/puppet/puppetd.pid]: Autorequiring File[/var/run/puppet]
debug: /File[/var/lib/puppet/ssl/certs/ca.pem]: Autorequiring File[/var/lib/puppet/ssl/certs]
debug: /File[/etc/puppet/puppet.conf]: Autorequiring File[/etc/puppet]
debug: /File[/var/lib/puppet/clientbucket]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/facts]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/state/graphs]: Autorequiring File[/var/lib/puppet/state]
debug: /File[/var/lib/puppet/ssl/certs/HOSTNAME.pem]: Autorequiring File[/var/lib/puppet/ssl/certs]
debug: /File[/var/lib/puppet/ssl/public_keys]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/private_keys/HOSTNAME.pem]: Autorequiring File[/var/lib/puppet/ssl/private_keys]
debug: /File[/var/lib/puppet/ssl/public_keys/HOSTNAME.pem]: Autorequiring File[/var/lib/puppet/ssl/public_keys]
debug: /File[/var/lib/puppet/ssl/certificate_requests]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/certs]: Autorequiring File[/var/lib/puppet/ssl]
debug: Finishing transaction -613406248 with 0 changes
debug: Using cached certificate for ca, good until Tue Nov 22 13:59:42 UTC 2016
debug: Using cached certificate for HOSTNAME, good until Sat Nov 26 11:31:35 UTC 2016
debug: Executing '/etc/puppet/etckeeper-commit-pre'
debug: Executing '/etc/puppet/etckeeper-commit-post'
err: Could not run Puppet configuration client: Could not retrieve local facts: 404 Not Found

并且与其他机器基本相同,除了在执行 etckeeper-commit-pre 后它没有做任何事情(并且 etckeeper 没有安装在任何机器上)。

4

2 回答 2

0

我也遇到这个问题。我尝试了很多次都没有成功。然后我使用:

which -a puppet

我发现安装了两个 puppet 版本!我删除了所有这些,然后使用 deb 包重新安装 puppet,现在它可以工作了。

于 2012-10-22T03:49:01.353 回答
0

该问题实际上是由 Facter 试图联系 Amazon 云服务以获取有关正在运行的虚拟实例的事实引起的。

显然你没有在云中运行它,所以你不需要它。

删除以下文件:

/usr/lib/ruby/1.8/facter/ec2.rb

我把我的移出那个目录,以防万一我需要它。重命名文件不会完成这项工作。

请注意,这在以后的 Puppet 版本中已修复。

于 2012-01-17T19:45:11.607 回答