我已经在我的一个ubuntu 12.04操作系统上设置了一个厨师服务器。第二台ubuntu机器有一个运行的厨师客户端,我用它来管理其他节点。
所以让我们决定命名如下: 厨师服务器:S 工作站:W 厨师节点N1,N2 ......
我使用此处给出的厨师引导程序从工作站W引导了厨师节点N1 http://wiki.opscode.com/display/chef/Client+Bootstrap+Fast+Start+Guide
在此之后我试图从我的工作站W在N1上运行chef-client命令。 我使用以下命令:
knife ssh name:chefNode -x ubuntu -P password "sudo chef-client"
这会引发以下错误: 错误:服务器返回http://ec2-XX-XX-XX-XXX.compute-1.amazonaws.com:4000/search/node?=name:chefNode&sort=X_CHEF_id_CHEF_X%20asc&start=0& rows = 1000的错误,在58秒内重试5/5 错误:内部服务器错误
感谢任何帮助或线索。请回答
答案 0 :(得分:2)
看看你的rabbitmq-server。看看它是否配置正确。
配置运行这些
rabbitmqctl add_vhost / chef
rabbitmqctl add_user chef testing
rabbitmqctl set_permissions -p / chef chef“。”“。”“。*”'
结帐
http://wiki.opscode.com/display/chef/Chef+Indexer
如果您不是root用户,请使用sudo。
另外在您的sever.rb文件中添加此行,该文件应位于/ etc / chef文件夹中
amqp_pass“测试”
重启rabbitmq-server服务,一切正常
答案 1 :(得分:0)
“knife ssh”命令使用chef的搜索功能。 @Manak Wadhwa建议的关于Chef Indexer的链接说:
Chef Indexer包含一个RabbitMQ消息队列,chef-expander,它从队列中提取消息并对其进行格式化;还有chef-solr,一个围绕Solr的薄包装。
因此,您还可以检查chef-solr和chef-expander是否正常运行。验证所有配置文件是否具有适用于每个组件的正确服务器IP /端口:
- Chef Server
和
- Chef Configuration Settings(检查 solr.rb 和 server.rb )
尝试从工作站进行简单搜索,例如:
knife search node "*:*"
甚至knife status
(刀状态使用搜索)获取所有节点的列表。我更喜欢刀状态,因为它将返回所有节点的列表,而刀搜索将返回所有节点作为对象,如果您有许多节点,它将无济于事。无论如何,如果结果是您拥有的所有节点的列表,那么搜索正在按预期工作。如果是这种情况,那么接下来我要尝试的是使用以下内容重建索引:
knife index rebuild -y
或更改solrconfig.xml中的maxFieldLength,如下面更详细的描述(2)
另外两个用于检查搜索故障排除的链接是:
1. [chef] nodes not showing up in `knife status` opscode列表中的人员尝试使用knife index rebuild -y
命令重建搜索索引并检查chef-solr相关的目录权限。
2. CHEF-2346他们在solr中讨论生成大量索引数据的系统中的maxFieldLength。正如您可能已经知道的那样,索引数据是从ohai和所有属性,节点,数据库等生成的数据。我的情况与我的所有Windows系统一样,与大多数其他人一样。 (我之所以提供此链接的原因是因为我无法估计索引数据的数量。)例如,LDAP可能会产生大量数据。当然,如果你的情况是大量的数据,你可以禁用一些ohai插件,如果你不需要它们。 (Check Disabling Ohai Plugins.)
答案 2 :(得分:0)
调试Chef Server&amp ;;的问题时的一个好习惯我找到了Co,查看服务器的日志。对于Chef Server 11,只需使用
即可$ sudo chef-server-ctl tail
或
$ sudo chef-server-ctl [<service name>] tail
对于这个特定问题,我会这样做
$ sudo chef-server-ctl erchef tail
您可以看到对请求的响应以及有关msg = [...]
下失败内容的简短消息另外,为了调试运行刀时遇到的问题,我会设置
log_level :debug
在knife.rb。