我使用官方 Apache 模块在 Redhat Linux 上安装 LAMP,并使用软件集合以便能够使用比 RHEL 7 默认更高的 PHP 版本。
RHSCL 包 rh-php70-php 放置一个文件让 Apache 解析 php:/opt/rh/httpd24/root/etc/httpd/conf.d/rh-php70-php.conf
但是,Puppet 会在下一次 Puppetrun 中清除此文件,因为它不受 Puppet Apache 模块管理(purge_configs => true)。
这很好,但是,如何才能仅对上面提到的文件做出例外,而不编辑 Apache 模块本身?
我用这个例子:
https://tickets.puppetlabs.com/browse/MODULES-2916
并尝试使 SCL PHP 5.6 与 Puppet Apache 模块一起工作,如文档中所述:
https://forge.puppet.com/puppetlabs/apache/1.4.1#class-apachemodphp
TLDR:我通过 apache::mod::php 从 Redhat SCL 安装/管理 PHP 5.6,但它将配置归档。我是否需要设置模板或 puppet 文件来否决这些配置,而不是将其归档?
答案1
您可以使用file
资源但不需要任何内容数据。
例如:
file { '/opt/rh/httpd24/root/etc/httpd/conf.d/rh-php70-php.conf':
ensure => file,
owner => 'httpd',
group => 'httpd',
mode => '0644',
require => Package['rh-php70-php','httpd'],
}
这将确保文件存在于指定位置,但不会更改其内容。当 Puppet 运行时,它不会删除该文件。