我试图在模块 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
答案1
我相信你需要像这样引用它:
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,
}
}
我从 manifests/nodes.pp 中引用了它。实际上我不需要那样做,而是为您设置并测试它(我的其他示例会更长)。效果很好。
答案2
您使用的是 2.6 或更早的版本吗?参数化类是 2.6 中的新增功能,因此如果您使用的是旧版本,则此方法将不起作用。