Aqui está o erro que estou recebendo:
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$
Isso acontece depois de executar sudo puppet apply manifests/site.pp.
Aqui está minha aula de Coelho:
# 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',
}
}
Estou tentando isso no Ubuntu 12.04 LTS VM. Alguma ideia? Isso está me deixando louco, fiquei preso por horas tentando descobrir isso.
Responder1
Eu também estou tendo este problema. A causa é que ao instalar o pacote 'rabbitmq-server' no Ubuntu,uma instância do RabbitMQ é iniciada. Isso ocorre intencionalmente. Tristemente.
Quanto a uma solução, ainda não encontrei.
Editar
Não sei se esse é o seu caso, mas no meu caso, eu estava mudando o nome do nó no fantoche de 'coelho' para outra coisa.
A breve explicação é que, como mencionei, a instalação do RabbitMQ-Server faz com que o serviço RabbitMQ-Server seja executado. Por padrão, ele usa o nome de nó 'coelho'.
No meu caso, apareceu o puppet, configurei o RabbitMQ e então, antes de tentar iniciar o serviço, executei '/etc/init.d/rabbitmq-service status', para verificar se já estava em execução.
Em um mundo ideal, a resposta teria sido "sim", já que estava, de fato, em execução, mas neste caso, o script '/etc/init.d/rabbitmq-service' usa o nome do nó configurado para verificar e veja se a instância está em execução - e quando o puppet alterou o nome do nó em /etc/rabbitmq/rabbitmq-env.conf, isso quebrou completamente a capacidade do script de serviço de determinar se estava em execução, então é claro, o script retorna 0, porque não é possível encontrar uma instância em execução.
O Puppet então tenta iniciar a nova instância com o novo nome de nó, mas isso falha porque apenas um serviço pode possuir uma porta por vez, e a instância em execução a possui.
Para consertar, configurei RABBITMQ_NODENAME de volta para 'coelho' e tudo funciona.
Eu escrevi sobre isso aqui:
http://www.standalone-sysadmin.com/blog/2014/02/rabbitmq-on-ubuntu-via-puppet/
Responder2
http://blog.zugschlus.de/archives/974-Debians-Policy-rc.d-infraestrutura-explained.html
O Debian é frequentemente criticado por esse padrão, e a resposta canônica é usar a estrutura de políticas fornecida com o sysv-rc para evitar que os serviços sejam iniciados. Como esse mecanismo é frequentemente mal compreendido, estou escrevendo este artigo para trazer mais confusão adicional a esse assunto.
(postagem do blog não é minha)