Puppet 不知何故未能包含包含 apache(模块)配置的类

Puppet 不知何故未能包含包含 apache(模块)配置的类

最近,我在运行 Puppet 服务器时遇到了一个非常奇怪的错误。

错误信息:

Error: Could not retrieve catalog from remote server: Error 500 on SERVER:
Server Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error:
Error while evaluating a Function Call, apache::mod::php requires apache::mod::prefork or apache::mod::itk; please enable mpm_module => 'prefork' or mpm_module => 'itk' on Class['apache'] at /etc/puppetlabs/code/environments/ams/modules/apache/manifests/mod/php.pp:21:3 at /etc/puppetlabs/code/environments/ams/modules/roles/manifests/webserver.pp:78 on node dev.puppet.ams.packed.be

奇怪的是,它webserver.pp包含一个类roles::webserver::apache,该类包含错误所引用的类声明。该类包含在对 的任何调用之前apache::mod::php

web服务器.pp:

class {'roles::webserver::apache':
  options => $options['apache'],
}

web服务器/apache.pp:

class roles::webserver::apache (Hash $options) {
 class { 'apache':
    purge_vhost_dir => true,
    default_vhost => false,
    default_mods => $options['default_mods'],
    serveradmin => '[email protected]',
    server_signature => 'Off',
    mpm_module => 'prefork',
  }
}

我检查了两个文件和 hiera 数据文件是否存在语法错误,但没有发现任何错误。

知道这里发生什么事了吗?

答案1

在以下人员的帮助下,我找到了问题和解决方案木偶

我要做的是将类转换roles::webserver::apache为不带任何参数的类,然后包括而不是将其声明为资源。

include roles::webserver::apache

我必须将它包含在webserver.pp所有使用的类中Apache 资源或类

class roles::webserver::service::website () {

  include roles::webserver::apache

  apache::vhost {'website':
    ...
  }

}

相关内容