У меня есть такая простая функция:
define e::x($x = $title) {
file {$x:
path => "/tmp/${x}",
ensure => present,
}
}
Я использую это так:
e::x {"xxxx":}
И все же созданный файл - это / tmp / "hostname", например, debian-vm или что-то в этом роде. Он НИКОГДА не использует правильное значение.
Я не понимаю, что не так, кто-нибудь знает?
Спасибо.
РЕДАКТИРОВАТЬ
Итак, после некоторого дополнительного тестирования похоже, что заголовок $ x = $ не работает. Если я использую напрямую $ title, он работает.
Это странно, потому что я уверен, что уже без проблем использовал этот шаблон на другом сервере.
Возможно, это связано с моей версией Puppet. Я запускаю упакованную версию Puppet в Debian Squeeze. Может быть ошибка.
Пакеты Debian Squeeze Puppet 2.6.2 - $title
переменная не будет работать как значение параметра по умолчанию.
Согласно примечанию после примера Вот, 2.6.5 требуется для получения ожидаемого поведения.