Veewee,Vagrant,Puppet,Erlang和RabbitMQ

我有点卡住了一个问题,我试图把我的头包裹好几天了。

这是我在做什么:

  1. 通过使用Veewee,我创build一个VirtualBox图像,然后我从它创build一个Vagrant框。 看到这里 , 在这里
  2. 最后我从Vagrant运行puppet来安装RabbitMQ,请看这里 。

Veewee,Vagrant和VirtualBox都运行在MacOS X 10.7.4上。 stream浪盒本身就是CentOS 6.2。

这工作很好,相当一段时间,直到我几天前重新创buildVirtualBox图像。 在puppet运行期间安装rabbitmq-plugins期间,我现在得到以下错误:

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

的RabbitMQ puppetconfiguration可以在我的GitHub仓库find,但是这里是最重要的部分:

 $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"] } 

我的附加存储库,例如epel,在文件顶部的veewees postinstall.sh中定义。

最后,这是我得到'/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}] 

networking资源提示,我必须设置HOME。 当然,如果设置了HOME,我就会login到这个盒子里,对于用户stream浪者来说,它是“/ home / vagrant”,对于root来说,这是“root”。

与往常一样,任何提示/想法/build议/假设都是值得欢迎的。

非常感谢!

干杯,托比

升级到Puppet 3.0后,我遇到了同样的问题。

从发行说明中我最终发现:

由于误导值,当运行命令时,HOME和USER环境variables现在未被设置。

为我工作的解决scheme是将environment => "HOME=/root"到Exec资源:

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

希望这可以帮助!