Puppet-Labs Apache 模块集 操作系统类型

Puppet-Labs Apache 模块集 操作系统类型

我是 Puppet 新手,在使用 Puppet-Labs Apache 模块时遇到了一些问题http://forge.puppetlabs.com/puppetlabs/apache。我将其与 Vagrant 结合使用,作为无服务器设置(如果这改变了您的答案。)

在我的入口点我调用了 apache.pp 类,它看起来像这样:

class {'apache::mod::php': 
   case $::operatingsystem {
     'RedHat', 'Fedora', 'CentOS', 'Scientific', 'SLC', 'Ascendos', 'CloudLinux', 'PSBM', 'OracleLinux', 'OVS', 'OEL': {
     }
     default: {
      $osfamily = $::operatingsystem
      }
    }
  }

但是当我运行 puppet 时出现语法错误:

Error: Could not parse for environment production: Syntax error at '::operatingsystem';    expected '}' at /tmp/vagrant-puppet/manifests/classes/apache.pp:2

我之所以选择这条路线,是因为在之前的调试运行中,我发现 puppet 试图在 centos 机器上使用“apt”。我假设我需要根据 puppet forge 页面上的 puppet labs“类型”信息设置操作系统类型。

对于那些不知道如何使用 vagrant 的人来说,我唯一需要注意的是,*.pp 是从主机系统(在本例中是 Debian)共享的。这也可能是一个原因吗?我不认为是。

如果这个问题很愚蠢,我深表歉意。谢谢。

答案1

您无需以任何方式设置操作系统 - Facter 会处理该问题。facter在系统上运行以验证其是否正确设置了事实。

你运行的是哪个版本的 Puppet?它似乎在使用时会受阻,$::因为它是顶部范围的明确规范,在任何最新版本中都应该可以正常工作。

相关内容