Ruby 找不到具有puppet node.rb错误404的Foreman
我已使用puppet安装了Ruby 找不到具有puppet node.rb错误404的Foreman,ruby,puppet,theforeman,Ruby,Puppet,Theforeman,我已使用puppet安装了foreman-1.2,安装后,我已将我的傀儡注册到foreman上的smart proxy 当我运行以下命令时 [root@puppet ~]# puppet agent -t Warning: Unable to fetch my node definition, but the agent run will continue: Warning: Error 400 on SERVER: Failed to find puppet.example.com via e
foreman-1.2
,安装后,我已将我的傀儡注册到foreman上的smart proxy
当我运行以下命令时
[root@puppet ~]# puppet agent -t
Warning: Unable to fetch my node definition, but the agent run will continue:
Warning: Error 400 on SERVER: Failed to find puppet.example.com via exec: Execution of '/etc/puppet/node.rb puppet.example.com' returned 1: --- false
Info: Retrieving plugin
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed when searching for node puppet.example.com: Failed to find puppet.example.com via exec: Execution of '/etc/puppet/node.rb puppet.example.com' returned 1: --- false
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
我试着跟着
[root@puppet ~]# /etc/puppet/node.rb puppet.example.com
--- false
Error retrieving node puppet.example.com: Net::HTTPNotFound
foreman.log调试
Started GET "/node/puppet.example.com?format=yml" for 10.101.20.15 at 2014-03-25 21:01:47 -0400
Processing by HostsController#externalNodes as YML
Parameters: {"name"=>"puppet.example.com"}
Setting Load (1.3ms) SELECT `settings`.* FROM `settings` WHERE `settings`.`name` = 'restrict_registered_puppetmasters' ORDER BY name LIMIT 1
Setting Load (0.3ms) SELECT `settings`.* FROM `settings` WHERE `settings`.`name` = 'require_ssl_puppetmasters' ORDER BY name LIMIT 1
SmartProxy Load (0.5ms) SELECT `smart_proxies`.* FROM `smart_proxies` INNER JOIN `features_smart_proxies` ON `features_smart_proxies`.`smart_proxy_id` = `smart_proxies`.`id` INNER JOIN `features` ON `features`.`id` = `features_smart_proxies`.`feature_id` WHERE `features`.`name` = 'Puppet' ORDER BY smart_proxies.name
Setting Load (0.3ms) SELECT `settings`.* FROM `settings` WHERE `settings`.`name` = 'trusted_puppetmaster_hosts' ORDER BY name LIMIT 1
Verifying request from ["puppet.example.com"] against ["puppet.example.com"]
User Load (0.4ms) SELECT `users`.* FROM `users` WHERE `users`.`login` = 'admin' LIMIT 1
Setting current user thread-local variable to admin
Host::Managed Load (0.7ms) SELECT `hosts`.* FROM `hosts` WHERE `hosts`.`type` IN ('Host::Managed') AND `hosts`.`certname` = 'puppet.example.com' LIMIT 1
Host::Managed Load (0.6ms) SELECT `hosts`.* FROM `hosts` WHERE `hosts`.`type` IN ('Host::Managed') AND `hosts`.`name` = 'puppet.example.com' LIMIT 1
Completed 404 Not Found in 25ms (ActiveRecord: 4.1ms)
我错过什么了吗?我是否需要首先在
foreman
GUI上创建主机?我不理解node.rb的概念,首先你应该检查node.rb的内容。需要设置许多变量才能使其工作。看起来这还没有完成,因为“Net::HTTPNotFound”说找不到Foreman服务器
其次,是和否——首先需要在Froreman中定义主机。如果主持人在Foreman中还不存在,Foreman“可能”会创建它——这实际上取决于你如何设置Foreman
如果内存工作正常,我相信当node.rb上传事实时(如果启用),将创建一个不存在的主机。如果您只是从命令行运行它,那么不会上载任何事实,也不会创建主机
为了进行测试,请确保主机是在Foreman中创建的。然后测试node.rb(检查其中的变量设置是否正确后)
编辑:
最后一个问题是:node.rb的主要功能是获取服务器的yaml格式化配置并将其交给puppet。辅助it还可以将事实从服务器上传到Foreman,这可以用于Foreman中的服务器分类。基本上,您必须确保主机和代理彼此熟悉(通过/etc/hosts或dns)。当主机无法解析代理的名称(例如puppet.example.com)时,通常会引发此错误