Почему мои переменные 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}":}
Другие вопросы по тегам