Veewee, Vagrant, Puppet, Erlang и RabbitMQ
Я как бы застрял с проблемой, которую я пытаюсь обернуть вокруг себя уже несколько дней.
Вот что я делаю:
- Используя Veewee, я создаю образ VirtualBox, а затем создаю из него окно Vagrant. Смотрите здесь, здесь
- Наконец, я запускаю puppet из Vagrant для установки RabbitMQ, смотрите здесь.
Veewee, Vagrant и VirtualBox работают на MacOS X 10.7.4. Сам бродячий ящик - CentOS 6.2.
Это работало хорошо в течение довольно долгого времени, пока я не воссоздал образ VirtualBox пару дней назад. Во время установки rabbitmq-plugins во время моего запуска кукол я теперь получаю следующую ошибку:
/Stage[main]/Rabbitmq/Exec[rabbitmq-plugins]/returns: erlexec: HOME must be set
Мою конфигурацию кукол RabbitMQ можно найти в моем репозитории GitHub для этого проекта, но вот самая важная часть:
$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}]
Источники в сети предполагают, что я должен установить HOME. Конечно, я входил в окно, если был установлен HOME, для пользователя vagrant это было /home/vagrant, а для root - root.
Как всегда, любые намеки / идеи / предложения / предположения приветствуются.
Большое спасибо!
Ура, Тоби
1 ответ
Я столкнулся с этой же проблемой после обновления до Puppet 3.0.
Из заметок о выпуске я в конце концов нашел это:
Из-за вводящих в заблуждение значений переменные среды HOME и USER теперь не устанавливаются при запуске команд.
Решение, которое работало для меня, добавляло 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"]
}
Надеюсь это поможет!