无法使用chef和testkitchen设置rabbitmq

无法使用chef和testkitchen设置rabbitmq,rabbitmq,chef-infra,Rabbitmq,Chef Infra,我正在尝试使用Chef(cookbook'RabbitMQ','~>5.8.5')和Kitchen安装RabbitMQ的旧版本,配置如下: 属性 #Erlang 默认值['erlang']['install_method']='source' 默认值['erlang']['source']['version']='R13B03' 默认值['erlang']['source']['checksum']='e7c46c8b2778f22064a3b369c1a1b572a1cc0e8a2198166

我正在尝试使用Chef(cookbook'RabbitMQ','~>5.8.5')和Kitchen安装RabbitMQ的旧版本,配置如下:

属性

#Erlang
默认值['erlang']['install_method']='source'
默认值['erlang']['source']['version']='R13B03'
默认值['erlang']['source']['checksum']='e7c46c8b2778f22064a3b369c1a1b572a1cc0e8a2198166858d4b9a1b488d662'
#兔子
默认值['rabbitmq']['erlang']['enabled']=true
默认值['rabbitmq']['version']=“3.4.4”
默认值['rabbitmq']['rpm_package']='rabbitmq-server-3.4.4-1.noarch.rpm'
配方:

include_recipe'rabbitmq::default'
当我运行kitchen converge时,我得到以下异常:

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", "-i", "/tmp/kitchen/cache/rabbitmq-server-3.4.4-1.noarch.rpm"] ----
   Ran ["rpm", "-i", "/tmp/kitchen/cache/rabbitmq-server-3.4.4-1.noarch.rpm"] returned 1
但当我登录到VM时,我可以看到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)要求的版本相同 你知道如何解决这个问题吗


编辑:要复制该问题,首先,我们必须确保erlang是通过
rabbitmq
cookbook安装的,而不是通过任何其他方式。这是Chef supermarket上的注释,用于:

这些软件包不能与其他Erlang软件包一起安装,例如,来自标准Debian存储库或Erlang解决方案的软件包

确保Erlang cookbook未被
rabbitmq::default使用

此外,还有许多RabbitMQ和Erlang版本。RabbitMQ 3.7.0是受支持的最低版本,其最低兼容的Erlang版本为19.3

零依赖性Erlang RPM“仅足以运行RabbitMQ”,如下所述:

例如,要使用兼容的Erlang 19.3.x安装RabbitMQ 3.7.x:

您应该具有以下属性:

default['rabbitmq']['erlang']['enabled']=true
默认值['rabbitmq']['version']='3.7.6'
默认值['rabbitmq']['erlang']['yum']['baseurl']='https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/19/el/7'
默认值['rabbitmq']['erlang']['version']='19.3.6.13'
然后包括以下配方:

include_recipe'rabbitmq::erlang_package'
包括配方“rabbitmq::default”

首先,我们必须确保erlang是通过
rabbitmq
cookbook安装的,而不是通过任何其他方式。这是Chef supermarket上的注释,用于:

这些软件包不能与其他Erlang软件包一起安装,例如,来自标准Debian存储库或Erlang解决方案的软件包

确保Erlang cookbook未被
rabbitmq::default使用

此外,还有许多RabbitMQ和Erlang版本。RabbitMQ 3.7.0是受支持的最低版本,其最低兼容的Erlang版本为19.3

零依赖性Erlang RPM“仅足以运行RabbitMQ”,如下所述:

例如,要使用兼容的Erlang 19.3.x安装RabbitMQ 3.7.x:

您应该具有以下属性:

default['rabbitmq']['erlang']['enabled']=true
默认值['rabbitmq']['version']='3.7.6'
默认值['rabbitmq']['erlang']['yum']['baseurl']='https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/19/el/7'
默认值['rabbitmq']['erlang']['version']='19.3.6.13'
然后包括以下配方:

include_recipe'rabbitmq::erlang_package'
包括配方“rabbitmq::default”

你有一个存储库来共享和复制这个问题吗?@我创建了一个repo来复制这个问题:你缺少
Gemfile.lock
,这会使bundler gem解析运行太长时间,所以我不得不终止它。请添加锁文件,然后我将尝试进行更深入的分析look@Mr.我添加了它,感谢您的帮助您可以登录到您的虚拟机并尝试手动运行Chef尝试的相同命令:
rpm-I/tmp/kitchen/cache/rabbitmq-server-3.4.4-1.noarch.rpm
(作为根目录)。输出结果会是什么?您是否有一个存储库来共享和复制该问题?@先生,我创建了一个repo来复制该问题:您缺少
Gemfile.lock
,这会使bundler gem解析运行太长时间,因此我不得不终止它。请添加锁文件,然后我将尝试进行更深入的分析look@Mr.我添加了它,感谢您的帮助您可以登录到您的虚拟机并尝试手动运行Chef尝试的相同命令:
rpm-I/tmp/kitchen/cache/rabbitmq-server-3.4.4-1.noarch.rpm
(作为根目录)。输出结果会是什么?我试过了,但它正在安装最新的erlang(22)。默认情况下安装的不是R13B03Latest版本,但它可以通过以下方式更改/设置:
node['rabbitmq']['erlang']['version']
Btw,rabbitmq 3.4.4似乎是一个新版本。因此,兼容的rabbitmq erlang可能不可用。为什么要使用此版本?我尝试过,但它正在安装最新的erlang(22)。默认情况下安装的不是R13B03最新版本,但可以通过以下方式更改/设置:
node['rabbitmq']['erlang']['version']
Btw,rabbitmq 3.4.4似乎是一个新版本。因此,兼容的rabbitmq erlang可能不可用。为什么要使用此版本?