如何解决无法使用Chef和TestKitchen设置Rabbitmq
我正在尝试在我的配置下使用Chef(烹饪书'rabbitmq','〜> 5.8.5')和Kitchen安装RabbitMQ的旧版本:
属性
#Erlang
default['erlang']['install_method'] = 'source'
default['erlang']['source']['version']='R13B03'
default['erlang']['source']['checksum']='e7c46c8b2778f22064a3b369c1a1b572a1cc0e8a2198166858d4b9a1b488d662'
#RabbitMQ
default['rabbitmq']['erlang']['enabled'] = true
default['rabbitmq']['version'] = "3.4.4"
default['rabbitmq']['rpm_package'] ='rabbitmq-server-3.4.4-1.noarch.rpm'
食谱:
include_recipe 'rabbitmq::default'
运行厨房融合时,出现以下异常:
Running handlers:
[2020-08-22T22:20:07+00:00] ERROR: Running exception handlers
Running handlers complete
[2020-08-22T22:20:07+00:00] ERROR: Exception handlers complete
Chef Infra Client failed. 9 resources updated in 06 minutes 26 seconds
[2020-08-22T22:20:07+00:00] FATAL: Stacktrace dumped to /tmp/kitchen/cache/chef-stacktrace.out
[2020-08-22T22:20:07+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2020-08-22T22:20:07+00:00] FATAL: Mixlib::ShellOut::ShellCommandFailed: rpm_package[/tmp/kitchen/cache/rabbitmq-server-3.4.4-1.noarch.rpm] (rabbitmq::default line 224) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0],but received '1'
---- Begin output of ["rpm","-i","/tmp/kitchen/cache/rabbitmq-server-3.4.4-1.noarch.rpm"] ----
STDOUT:
STDERR: warning: /tmp/kitchen/cache/rabbitmq-server-3.4.4-1.noarch.rpm: Header V4 DSA/SHA1 Signature,key ID 056e8e56: NOKEY
error: Failed dependencies:
erlang >= R13B-03 is needed by rabbitmq-server-3.4.4-1.noarch
---- End output of ["rpm","/tmp/kitchen/cache/rabbitmq-server-3.4.4-1.noarch.rpm"] ----
Ran ["rpm","/tmp/kitchen/cache/rabbitmq-server-3.4.4-1.noarch.rpm"] returned 1
但是当我登录到虚拟机时,我可以看到安装了erlang:
[vagrant@kitchen-rmq-server-centos-7 ~]$ erl
Erlang R13B03 (erts-5.7.4) [source] [64-bit] [rq:1] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.7.4 (abort with ^G)
1>
它与RMQ(R13B03)所需的版本相同 知道如何解决这个问题吗?
编辑:复制问题https://github.com/Proximator/chef-rmq
解决方法
首先,我们必须确保rabbitmq
食谱中已安装erlang,而没有其他任何方式。这是在厨师超市上找到的rabbitmq cookbook注释:
软件包不能与其他Erlang软件包一起安装,例如,来自标准Debian存储库或Erlang Solutions的软件包。
要确保
rabbitmq::default
未使用Erlang食谱
此外,还有compatibility matrix的RabbitMQ和Erlang版本。 RabbitMQ 3.7.0是受支持的最低版本,其最低兼容的Erlang版本为19.3。
Erlang RPM零依赖性“ 足以运行RabbitMQ ”,如此处所述:
https://github.com/rabbitmq/erlang-rpm
例如-使用兼容的Erlang 19.3.x安装RabbitMQ 3.7.x:
您应该具有以下属性:
default['rabbitmq']['erlang']['enabled'] = true
default['rabbitmq']['version'] = '3.7.6'
default['rabbitmq']['erlang']['yum']['baseurl'] = 'https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/19/el/7'
default['rabbitmq']['erlang']['version'] = '19.3.6.13'
然后包括以下食谱:
include_recipe 'rabbitmq::erlang_package'
include_recipe 'rabbitmq::default'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。