Pregunta Veewee, Vagrant, Puppet, Erlang y RabbitMQ


Estoy un poco atascado con un problema que estoy tratando de envolver mi cabeza por días.

Esto es lo que estoy haciendo:

  1. Al usar Veewee, estoy creando una imagen de VirtualBox y luego creo un cuadro de Vagrant. Ver aquí, aquí
  2. Finalmente corro Puppet desde Vagrant para instalar RabbitMQ, vea aquí.

Veewee, Vagrant y VirtualBox se ejecutan en MacOS X 10.7.4. La caja errante en sí es CentOS 6.2.

Esto funcionó bien durante bastante tiempo hasta que estaba recreando la imagen de VirtualBox hace un par de días. Durante la instalación de los complementos de rabbitmq durante mi ejecución de títere, ahora aparece el siguiente error:

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

Se puede encontrar mi configuración de títere RabbitMQ en mi repositorio de GitHub Para ese proyecto, pero aquí está la parte más 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"]
}

Mis repositorios adicionales, por ej. epel, se definen en veewees postinstall.sh justo en la parte superior del archivo.

Finalmente, esto es lo que obtengo cuando hago '/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}]

Las fuentes en la web sugieren, que tengo que establecer HOME. Por supuesto, estaba iniciando sesión en el cuadro si se configuró HOME, para el usuario vagrant era '/ home / vagrant' y para root era 'root'.

Como siempre, cualquier sugerencia / ideas / sugerencias / suposiciones son más que bienvenidas.

¡Muchas gracias!

Aclamaciones, Tobi


6
2017-10-04 20:04


origen


¿Estás realmente resolviendo un problema? - Joel E Salas
Claro, mi objetivo es crear dos cajas errantes, una con un cliente sensu y otra con un servidor sensu. Ya que soy nuevo en Puppet, estoy experimentando mucho, eso requiere que yo tenga vagrant para poder destruir una caja y construirla de nuevo. Ya funcionaba bien. Teniendo solo la imagen ISO y algunos archivos en GitHub, pude hacerlo, pero ya no. - Tobias
¿Y cuál es el problema exactamente? ¿Tienes un archivo Puppet para instalar rabbitmq y parece que funciona bien? - hayalci
En realidad, no del todo ... Funciona bien hasta que '/ Stage [main] / Rabbitmq / Exec [rabbitmq-plugins] / devuelve: erlexec: HOME debe estar configurado', vea mi publicación y luego obtengo '/ Stage [main ] / Rabbitmq / Service [rabbitmq-server]: la dependencia Exec [rabbitmq-plugins] tiene fallas: verdadero '. Todos los demás recursos que se aplicarían posteriormente fallarían debido a esta dependencia fallida. - Tobias


Respuestas:


Me encontré con este mismo problema después de actualizar a Puppet 3.0.

Desde el Notas de lanzamiento Eventualmente encontré esto:

Debido a valores engañosos, las variables de entorno HOME y USER ahora están desactivadas cuando se ejecutan comandos.

La solución que funcionó para mí fue agregando. environment => "HOME=/root" al 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 esto ayude!


12
2017-10-05 23:15



Muchas gracias, esto ayudó. Mi error fue que he establecido la variable de entorno en un exec-resource separado, asumiendo que esto se aplicará también a todos los demás exec-resources. Obviamente no lo hace. - Tobias