Я пытаюсь использовать переменные в своих модулях manifest.pp без особого успеха
class mysoftware($version="dev-2011.02.04b") {
File {
links => follow
}
file { "/opt/mysoftware":
ensure => directory
}
file { "/opt/mysoftware/share":
source => "puppet://puppet/mysoftware/air/$version",
recurse => "true",
}
}
Это не работает, когда я назначаю это узлу через файл nodes.pp.
Я использую puppetmaster 2.6.4, клиенты puppetd - 0,25
Я считаю, что вам нужно ссылаться на это так:
source => "puppet://puppet/mysoftware/air/${version}",
Вот как я использую нечто подобное:
class aliases($al="aliases") {
file { "/etc/aliases":
mode => 640,
source => "puppet:///files/sendmail/${al}",
owner => "root",
group => "root",
before => Exec["create aliases db"]
}
exec { "new_aliases":
command => "/usr/bin/newaliases",
subscribe => File["/etc/aliases"],
alias => "create aliases db",
refreshonly => true,
}
}
На что я ссылаюсь из manifest / nodes.pp. На самом деле мне не нужно делать это таким образом, но я настроил и протестировал от вашего имени (другие мои примеры были бы намного длиннее). Работает как шарм.
Вы используете 2.6 или старше? Параметризованные классы появились впервые в версии 2.6, поэтому, если вы используете старую версию, это не должно работать.