Tentando instalar o RabbitMQ com o Puppet

4

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 que eu executo o 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 louca, eu tenho estado preso por horas tentando descobrir isso.

    
por Richard Knop 21.12.2013 / 17:29

2 respostas

3

Eu também estou tendo esse problema. A causa é que ao instalar o pacote 'rabbitmq-server' no Ubuntu, uma instância do rabbitmq é iniciada . Isso é por design. Infelizmente.

Quanto a uma solução, ainda não encontrei nenhuma.

Editar

Eu não sei se este é 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 eu mencionei, a instalação do rabbitmq-server faz com que o serviço rabbitmq-server seja executado. Por padrão, ele usa um nome de nó de 'coelho'.

No meu caso, o fantoche apareceu, configurou o rabbitmq, e então, antes de tentar iniciar o serviço, correu '/etc/init.d/rabbitmq-service status', para checar e ver se ele já estava rodando.

Em um mundo ideal, a resposta teria sido "yes", 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 verificar 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 ele estava em execução, então, é claro, o script retorna 0, porque não consegue encontrar uma instância em execução.

O Puppet então tenta iniciar a nova instância com o novo nome do 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, eu configurei o RABBITMQ_NODENAME de volta para 'rabbit' e tudo funciona.

Eu escrevi sobre isso aqui:

link

    
por 07.02.2014 / 10:55
0

link

Debian is frequently bashed for this default, and the canonical answer is to use the policy framework delivered with sysv-rc to avoid services from being started. Since this mechanism is frequently misunderstood, I am writing this article to bring some more additional confusion to this matter.

(post no blog não é meu)

    
por 07.02.2014 / 13:29