我正在尝试在 Amazon Linux 2014.03(在 EC2 实例上)上配置 Chef Server 11.1.8。
RPM 安装成功:
sudo rpm -Uhv private-chef-11.1.8-1.el6.x86_64.rpm
然后运行
sudo private-chef-ctl 重新配置
安装 RabbitMQ 时重新配置挂起(见下文)。
对此有讨论这里但相关文件已发生改变,该解决方案不再适用。
有任何想法吗?
- configure service runit_service[rabbitmq]
配方:private-chef::rabbitmq 执行[/opt/opscode/bin/private-chef-ctl start rabbitmq] 操作运行 =====================================================================================
run
在资源上执行操作时出错执行[/opt/opscode/bin/private-chef-ctl 启动 rabbitmq]
Mixlib::ShellOut::ShellCommandFailed ------------------------------------ 预期进程以 [0] 退出,但收到“1” ---- 开始 /opt/opscode/bin/private-chef-ctl start rabbitmq 的输出 ---- STDOUT:警告:rabbitmq:无法打开 supervise/ok:文件不存在 STDERR: ---- /opt/opscode/bin/private-chef-ctl start rabbitmq 的输出结束 ---- 运行 /opt/opscode/bin/private-chef-ctl start rabbitmq 返回 1
资源声明:
在 /opt/opscode/embedded/cookbooks/private-chef/recipes/rabbitmq.rb 中
79:执行“#{opc_ctl} 启动 rabbitmq” 80:重试 20 81:结束 82:
编译资源:
在 /opt/opscode/embedded/cookbooks/private-chef/recipes/rabbitmq.rb:79:in 中声明
‘来自文件’
执行(“/opt/opscode/bin/private-chef-ctl start rabbitmq”)执行
操作“运行”重试 0 retry_delay 2 命令“/opt/opscode/bin/private-chef-ctl start rabbitmq”备份 5
返回 0 cookbook_name:“private-chef”recipe_name“rabbitmq”结束正在运行处理程序:[2014-07-10T06:51:52 + 00:00]错误:正在运行异常处理程序运行处理程序已完成
[2014-07-10T06:51:52+00:00] 错误:异常处理程序完成 [2014-07-10T06:51:52+00:00] 严重:堆栈跟踪转储至 /opt/opscode/embedded/cookbooks/cache/chef-stacktrace.out Chef Client 失败。 2 个资源在 44.887268777 秒内更新 [2014-07-10T06:51:52+00:00] 错误:执行[/opt/opscode/bin/private-chef-ctl start rabbitmq](private-chef::rabbitmq 第 79 行)时发生错误:Mixlib::ShellOut::ShellCommandFailed:预期进程以 [0] 退出,但收到“1” ---- 开始 /opt/opscode/bin/private-chef-ctl start rabbitmq 的输出 ---- STDOUT:警告:rabbitmq:无法打开 supervise/ok:文件不存在 STDERR: ---- /opt/opscode/bin/private-chef-ctl start rabbitmq 的输出结束 ---- 运行 /opt/opscode/bin/private-chef-ctl start rabbitmq 返回 1 [2014-07-10T06:51:52+00:00] 严重错误:Chef::Exceptions::ChildConvergeError:Chef 运行进程退出失败(退出代码 1)
答案1
运行 private-chef-ctl rabbitmq restart 然后再次尝试重新配置。
为了全面披露,我在这里声明我是 Chef 的工程师。
Enterprise Chef(我看到您正在安装)有一个已知问题,即 rabbitmq 会像这样挂起。问题在于我们有一个脚本,它可以检测 rabbitmq 何时启动并在等待 rabbitmq 完全启动时保留重新配置。有一个问题(可能是竞争条件,我们不能 100% 确定)会导致此脚本挂起。然而,它不会以这种方式可预测地失败,尽管当它失败时,它似乎在每次重新配置时都以这种方式卡住。我们尚未确定此问题的确切原因,但我们正在调查并希望在下一个 Chef 服务器版本中修复它。重新启动 rabbit 并重试可以解决这个问题。