Puppet -包名变量失败



我刚接触木偶,我被难住了。

我正在安装gcc, gcc-c++, openssl和openssl-devel。

在所示的代码中,$openssl_devel工作,但$c_plus未定义。

为什么puppet将$c_plus设置为'undef' ?

Cent OS 6

class torque::prerequisites {
case $operatingsystem {
      centos,redhat: {$openssl_devel    = 'openssl-devel'}
      centos,redhat: {$c_plus           = 'gcc-c++'}
      debian,ubuntu: {$openssl_devel    = 'libssl-dev'}
      debian,ubuntu: {$c_plus           = 'build-essential'}
      default:{fail("Unable identify opperating system. $operatingsytem not recognized") }
    }
    package {'openssl':
      ensure => latest,
    }
    package {$openssl_devel:
      ensure   => latest,
      require => Package['openssl'],
    }
    package {'gcc':
        ensure => installed,
    }
    package {$c_plus:
        ensure => installed,
        require => Package['gcc'],
    }
}
class {'torque::prerequisites':}

puppet apply torque_先决条件

err:/Stage[main]/Torque::先决条件/Package[undef]/ensure: change from absent to present failed: Could not find Package undef

我仍然不知道为什么原来的语法不起作用,但是这个语法确实起作用了:

class torque::prerequisites {
case $::osfamily {
    Redhat: {
      $openssl_devel = 'openssl-devel'
      $c_plus_compiler  = 'gcc-c++'
    }
    Debian: {
      $openssl_devel = 'libssl-dev'
      $c_plus_compiler = 'build-essential'
    }
  default:{fail("Unable identify opperating system. $operatingsytem not recognized") }
}
package {'openssl':
  ensure => latest,
}
package {$openssl_devel:
  ensure   => latest,
  require => Package['openssl'],
}
package {'gcc':
    ensure => installed,
}
package {$c_plus_compiler:
    ensure => installed,
    require => Package['gcc'],
}
}
class {'torque::prerequisites':}

相关内容

最新更新