0

我有一个非常简单的厨师食谱,它尝试在 EC2 和 Vagrant VM(都运行 Ubuntu 12.04)上安装 RabbitMQ 和几个 RabbitMQ 插件。

我正在使用 OpsCode RabbitMQ 食谱(https://github.com/opscode-cookbooks/rabbitmq),当我配置机器时,我得到以下堆栈跟踪:

INFO: Processing apt_repository[rabbitmq] action add (rabbitmq::default line 43)
INFO: Processing remote_file[/srv/chef/file_store/rabbitmq-signing-key-public.asc] action create (/srv/chef/file_store/cookbooks/apt/providers/repository.rb line 36)
INFO: remote_file[/srv/chef/file_store/rabbitmq-signing-key-public.asc] updated
INFO: remote_file[/srv/chef/file_store/rabbitmq-signing-key-public.asc] mode changed to 644
INFO: Processing execute[install-key rabbitmq-signing-key-public.asc] action run (/srv/chef/file_store/cookbooks/apt/providers/repository.rb line 52)
INFO: execute[install-key rabbitmq-signing-key-public.asc] ran successfully
INFO: apt_repository[rabbitmq] sending run action to execute[apt-get update] (immediate)
INFO: Processing execute[apt-get update] action run (apt::default line 29)
INFO: execute[apt-get update] ran successfully
INFO: Processing remote_file[/srv/chef/file_store/rabbitmq-signing-key-public.asc] action nothing (/srv/chef/file_store/cookbooks/apt/providers/repository.rb line 36)
INFO: Processing execute[install-key rabbitmq-signing-key-public.asc] action nothing (/srv/chef/file_store/cookbooks/apt/providers/repository.rb line 52)
INFO: Processing execute[apt-get update] action nothing (/srv/chef/file_store/cookbooks/apt/providers/repository.rb line 78)
INFO: Processing file[/etc/apt/sources.list.d/rabbitmq-source.list] action create (/srv/chef/file_store/cookbooks/apt/providers/repository.rb line 89)
INFO: file[/etc/apt/sources.list.d/rabbitmq-source.list] created file /etc/apt/sources.list.d/rabbitmq-source.list
INFO: Processing package[util-linux] action install (rabbitmq::default line 53)
INFO: Processing package[rabbitmq-server] action install (rabbitmq::default line 54)
ERROR: package[rabbitmq-server] (rabbitmq::default line 54) has had an error
...
FATAL: Chef::Exceptions::Exec: package[rabbitmq-server] (rabbitmq::default line 54) had an error: Chef::Exceptions::Exec: apt-get -q -y install rabbitmq-server=2.7.1-0ubuntu4 returned 100, expected 0

正如您从日志中看到的那样,在apt-get update添加新的 rabbitmq 源之前正在发生这种情况(这意味着它尝试安装 rabbitmq-server 版本 2.7.1 与 RabbitMQ 存储库中的 2.8.x 版本。

这是食谱代码:https ://github.com/opscode-cookbooks/rabbitmq/blob/master/recipes/default.rb#L43-54

任何想法如何解决这个问题?

4

1 回答 1

0

我有你需要的 2 个修复。

添加新存储库时,apt_repository 没有启动适当的 apt-get 更新。 http://tickets.opscode.com/browse/COOK-1530有修复。

rabbitmq 的 apt_repository 没有触发 apt-get 更新 http://tickets.opscode.com/browse/COOK-1496,而 apt 食谱更新修复了它。今天已合并到https://github.com/opscode-cookbooks/rabbitmq master。

两本食谱的新版本应该可以解决所有问题,希望这周。在此期间,请随时从 github 获取,如有任何进一步的问题,请联系我。

马特@opscode

于 2012-08-13T22:49:32.547 回答