Дано что в моем 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
Благодаря @SebastianWeigand, моему коллеге, я обнаружил, что использование cammel-case в именах переменных вызывает проблему. Переключение на «переменный один» и «переменный два» с обеих сторон исправило это.
Возможно, ваше уведомление находится в пространстве имен. Можете ли вы попытаться получить доступ к переменным facter в верхней области через:
notify{ "Got here with ${::variableOne} and ${::variableTwo}":}