这是我得到的错误:
ubuntu@sync1:/etc/puppet$sudo /usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install rabbitmq-server Reading package lists... Building dependency tree... Reading state information... rabbitmq-server is already the newest version. 0 upgraded,0 newly installed,0 to remove and 2 not upgraded. 1 not fully installed or removed. After this operation,0 B of additional disk space will be used. Setting up rabbitmq-server (3.2.2-1) ... * Starting message broker rabbitmq-server * Failed - check /var/log/rabbitmq/startup_\{log,_err\} [fail] invoke-rc.d: initscript rabbitmq-server,action "start" Failed. dpkg: error processing rabbitmq-server (--configure): subprocess installed post-installation script returned error exit status 1 E: Sub-process /usr/bin/dpkg returned an error code (1) ubuntu@sync1:/etc/puppet$
这是在我运行sudo puppet apply manifests / site.pp之后发生的.
这是我的Rabbit课程:
# See https://github.com/puppetlabs/puppetlabs-rabbitmq class my_rabbitmq ($environment,$type,$user,$password) { # case $environment { # staging: { # #@todo # } # production: { # #@todo # } # } # # case $type { # sync: { # #@todo # } # async: { # #@todo # } # } class { '::rabbitmq': delete_guest_user => true,version => '3.2.2',}-> rabbitmq_user { 'richard': admin => true,password => 'richard_password',provider => 'rabbitmqctl',}-> rabbitmq_user_permissions { 'richard@/': configure_permission => '.*',read_permission => '.*',write_permission => '.*',provider => 'rabbitmqctl',} }
我在Ubuntu 12.04 LTS VM上尝试这个.有任何想法吗?这让我发疯,我已经被困了几个小时试图解决这个问题.
我也有这个问题.原因是在Ubuntu,an instance of rabbitmq starts上安装’rabbitmq-server’软件包.这是设计的.可悲的是.
原文链接:/ubuntu/347962.html至于解决方案,我还没有找到.
编辑
我不知道你是否属于这种情况,但就我而言,我正在将木偶中的节点名称从“兔子”改为其他东西.
简要说明是,正如我所提到的,安装rabbitmq-server会导致rabbitmq-server服务运行.默认情况下,它使用节点名称“rabbit”.
在我的情况下,puppet出现,配置rabbitmq,然后,在尝试启动服务之前,运行’/etc/init.d/rabbitmq-service status’,检查它是否已经运行.
在一个理想的世界中,答案肯定是“是”,因为它实际上正在运行,但在这种情况下,’/ etc / init.d / rabbitmq-service’脚本使用配置的节点名来检查和查看实例是否正在运行 – 当puppet在/etc/rabbitmq/rabbitmq-env.conf中更改了节点名称时,这完全破坏了服务脚本确定它是否正在运行的能力,所以当然,脚本返回0,因为它无法找到正在运行的实例.
然后,Puppet尝试使用新节点名称启动新实例,但这会失败,因为一次只有一个服务可以拥有一个端口,并且正在运行的实例拥有它.
为了解决这个问题,我将RABBITMQ_NODENAME设置回“兔子”,一切正常.
我在这里写到:
http://www.standalone-sysadmin.com/blog/2014/02/rabbitmq-on-ubuntu-via-puppet/