Почему мои переменные puppet не назначаются параметрами Vagrant puppet.facter?
Учитывая, что в моем Vagrantfile сконфигурировано следующее:
puppet.facter = {
'variableOne' => 'one',
'variableTwo' => 'two'
}
... и следующее в манифесте:
notify{ "Got here with ${variableOne} and ${variableTwo}":}
Когда я бегу vagrant up
(или же vagrant provision
если он уже запущен) я вижу следующую строку в выводе:
==> default: Notice: Got here with and
и когда я добавлю --debug
для команды vagrant я также вижу это в выводе:
==> default: Running Puppet with default.pp...
DEBUG ssh: Re-using SSH connection.
INFO ssh: Execute: FACTER_variableOne='one' FACTER_variableTwo='two' puppet apply --verbose --debug --manifestdir /tmp/vagrant-puppet-3/manifests --detailed-exitcodes /tmp/vagrant-puppet-3/manifests/default.pp (sudo=true)
Почему переменные не заполняются в манифесте?
Пример репозитория для воспроизведения: https://github.com/ericsmalling/vagrantpuppet
2 ответа
Решение
Благодаря @SebastianWeigand, моему коллеге, я обнаружил, что использование cammel-case в именах переменных вызывало проблему. Переключение на "variableone" и "variabletwo" в обе стороны исправило это.
Может быть, ваше уведомление находится в пространстве имен. Можете ли вы попытаться получить доступ к переменным фактора в верхней области видимости через:
notify{ "Got here with ${::variableOne} and ${::variableTwo}":}