Учитывая, что следующее является config'd в моем 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
к бродячей команде я также вижу это в выводе:
==> 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)
Почему переменные не заполняют в декларации?
Пример repo для репродуцирования: https://github.com/ericsmalling/vagrantpuppet
Благодаря @SebastianWeigand, моему коллеге, я обнаружил, что использование cammel-case в именах переменных вызывало проблему. Переключение на "variableone" и "variabletwo" с обеих сторон исправило это.
Может быть, ваше уведомление находится в пространстве имён. Можете ли вы попробовать получить доступ к переменным Facter в верхнем диапазоне имен через:
notify{ "Got here with ${::variableOne} and ${::variableTwo}":}