我是傀儡新手,所以任何帮助都会受到赞赏。我试图将静态数据传递到Puppet类中的变量apache_version
,具体取决于操作系统发布版本。此变量稍后将在.erb
模板文件中用于根据版本配置apache。现在我的班级看起来像这样:
class some_class_name () {
case $::operatingsystem {
'RedHat' : {
case $::operatingsystemrelease {
/^7\..*/ : { }
/^6\..*/ : { }
}
}
}
}
如何在此{}
括号内定义此变量?对于.erb
文件,应该像这样使用:
<%- if @apache_version >= '2.4' -%>
set something
<%- else -%>
set something else
<%- end -%>
我的目标是这样:
class some_class_name () {
case $::operatingsystem {
'RedHat' : {
case $::operatingsystemrelease {
/^7\..*/ : { $apache_version = '2.4' }
/^6\..*/ : { $apache_version = '2.2' }
}
}
}
}
但它不起作用。
答案 0 :(得分:1)
好的,我已成功解决了这个问题。现在我正在使用:
if $::operatingsystemrelease =~ /^7\..*/ {
$apache_version = '2.4'
} else {
$apache_version = '2.2'
}
在params.pp
文件中。有了这一切,一切都正确配置。
答案 1 :(得分:0)
最好在这里使用$::operatingsystemmajrelease
这个事实:
if $::operatingsystemmajrelease == 7 {
$apache_version = '2.4'
} else {
$apache_version = '2.2'
}
我也认为这是Puppet选择器的一个很好的用例:
$apache_version = $::operatingsystemmajrelease ? { 7 => '2.4', default => '2.2' }