我已经安装了puppetlabs-apache
模块。我能够管理虚拟主机,但现在我想更改/添加apache2.conf
客户端服务器默认文件的内容。具体来说,我必须添加行
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
Include /etc/apache2/conf.d/security
到apache2.conf
文件。如何在不干扰 puppetlabs/apache 模块设置的情况下进行更改?
我已经安装了puppetlabs-apache
模块。我能够管理虚拟主机,但现在我想更改/添加apache2.conf
客户端服务器默认文件的内容。具体来说,我必须添加行
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
Include /etc/apache2/conf.d/security
到apache2.conf
文件。如何在不干扰 puppetlabs/apache 模块设置的情况下进行更改?
Apache 的配置系统,由 puppetlabs-apache 设置,旨在让您通常不需要修改主配置文件。相反,您通常希望将文件放到服务器的conf.d/
目录中,它可以自动找到并加载它们。模块的apache::custom_config
定义类型正是为了这个目的。
如果出于某种原因您坚持部署主配置文件的修改版本,那么您可以通过将相应 ERB 模板的名称指定为 class参数apache
的值来实现。conf_template
如果您打算采用此选项,那么我强烈建议您从模块随附的默认模板的副本开始,并对其进行必要的修改。如果您指定的模板不支持它们,则可能会破坏模块的其他功能。
templates/httpd.conf.erb
直接使用您的自定义内容进行修改。
如果您为多个应用程序引用此 Apache 模块并且您的自定义内容存在风险,您可能希望复制整个模块并保持对模板进行本地化的自定义。
通过备份templates/httpd.conf.erb
文件并在文档中插入以下行,我能够使用它通过 puppet 在我的服务器上启用 Apache http2。
Protocols h2 http/1.1
根据 John 的建议,.erb
在编辑之前复制文件也很简单。
我必须为 http2 修改模块中的文件的唯一其他步骤是创建自己的manifests/mod/http2.pp
文件,我只是通过在同一目录中复制 headers.pp 文件并使用 http2 而不是标头更新它来完成。
现在似乎真的需要通过 Apache 启用 http2,但这张票已经开放了大约一年:
https://tickets.puppetlabs.com/browse/MODULES-6537
我提出所有这些是因为这是一个非常具体的示例,其中进入模块并扩展它似乎是值得的 - 该模块是如此可配置的开箱即用,通常看起来最安全的是留在其支持的功能中。
谢谢你的回答,约翰。它帮助我很快解决了我的功能请求。我没有声誉,所以我无法直接回复您的回答。