Veewee, Vagrant, Puppet, Erlang e RabbitMQ

6

Estou meio que com um problema em que estou tentando enrolar minha cabeça há dias.

Aqui está o que estou fazendo:

  1. Ao usar o Veewee, estou criando uma imagem do VirtualBox e, em seguida, crio uma caixa do Vagrant. Veja aqui , aqui
  2. Finalmente eu corro marionetes do Vagrant para instalar o RabbitMQ, veja aqui .

O Veewee, o Vagrant e o VirtualBox são todos executados no MacOS X 10.7.4. A caixa do vagrant em si é o CentOS 6.2.

Isso funcionou bem por algum tempo até que eu estava recriando a imagem do VirtualBox alguns dias atrás. Durante a instalação dos plug-ins rabbitmq durante minha corrida de marionetes, agora recebo o seguinte erro:

/Stage[main]/Rabbitmq/Exec[rabbitmq-plugins]/returns: erlexec: HOME must be set

Minha configuração de marionetes do RabbitMQ pode ser encontrada no repositório do GitHub para esse projeto, mas aqui está a parte mais importante:

$version = "2.8.7"
$url     = "http://www.rabbitmq.com/releases/rabbitmq-server/v${version}/rabbitmq-server-${version}-1.noarch.rpm"

package{"erlang":
    ensure => "present",
}

package{"rabbitmq-server":
    provider => "rpm",
    source   => $url,
    require  => Package["erlang"]
}

exec{"rabbitmq-plugins":
    path    => "/usr/bin:/usr/sbin:/bin",
    command => "rabbitmq-plugins enable rabbitmq_management",
    require => Package["rabbitmq-server"]
}

Meus repositórios adicionais, por exemplo epel, são definidos em veewees postinstall.sh logo no topo do o arquivo.

Finalmente, isso é o que eu recebo quando faço '/etc/init.d/rabbitmq-server status'

[{pid,2834},
{running_applications,[{rabbit,"RabbitMQ","2.8.7"},
                    {ssl,"Erlang/OTP SSL application","4.1.6"},
                    {public_key,"Public key infrastructure","0.13"},
                    {crypto,"CRYPTO version 2","2.0.4"},
                    {mnesia,"MNESIA  CXC 138 12","4.5"},
                    {os_mon,"CPO  CXC 138 46","2.2.7"},
                    {sasl,"SASL  CXC 138 11","2.1.10"},
                    {stdlib,"ERTS  CXC 138 10","1.17.5"},
                    {kernel,"ERTS  CXC 138 10","2.14.5"}]},
{os,{unix,linux}},
{erlang_version,"Erlang R14B04 (erts-5.8.5) [source] [64-bit] [rq:1] [async-threads:30] [kernel-poll:true]\n"},
{memory,[{total,24993120},
      {processes,10328496},
      {processes_used,10321296},
      {system,14664624},
      {atom,1175905},
      {atom_used,1143841},
      {binary,17192},
      {code,11416020},
      {ets,766168}]},
{vm_memory_high_watermark,0.4},
{vm_memory_limit,205851852},
{disk_free_limit,1000000000},
{disk_free,7089795072},
{file_descriptors,[{total_limit,924},
                {total_used,4},
                {sockets_limit,829},
                {sockets_used,2}]},
{processes,[{limit,1048576},{used,131}]},
{run_queue,0},
{uptime,6}]

Fontes na web sugerem que eu tenha que configurar o HOME. É claro que eu estava logando na caixa se o HOME estava configurado, para o usuário vagrant era '/ home / vagrant' e para root era 'root'.

Como sempre, quaisquer sugestões / ideias / sugestões / suposições são mais do que bem-vindas.

Muito obrigado!

Felicidades, Tobi

    
por Tobias 04.10.2012 / 22:04

1 resposta

12

Eu me deparei com esse mesmo problema depois de atualizar para o Puppet 3.0.

Das notas de lançamento , encontrei isso:

Due to misleading values, the HOME and USER environment variables are now unset when running commands.

A solução que funcionou para mim foi adicionar environment => "HOME=/root" ao recurso Exec:

exec{"rabbitmq-plugins":
    path        => "/usr/bin:/usr/sbin:/bin",
    environment => "HOME=/root",
    command     => "rabbitmq-plugins enable rabbitmq_management",
    require     => Package["rabbitmq-server"]
}

Espero que isso ajude!

    
por 06.10.2012 / 01:15