Назад | Перейти на главную страницу

Puppet использует имя хоста как значение переменной

У меня есть такая простая функция:

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 требуется для получения ожидаемого поведения.