在木偶类

时间:2017-05-23 12:20:09

标签: puppet erb

我是傀儡新手,所以任何帮助都会受到赞赏。我试图将静态数据传递到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' }
      }
    }
  }
}

但它不起作用。

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' }