在Chef apache2 cookbook中,您可以找到node['apache']['default_site_enabled']
启用默认站点的属性。如果设置为true,则使用此模板apache2/templates/default/default-site.erb
。但是我发现有固定值AllowOverride None
,因此显然您不能通过属性更改它。所以我的问题是如何在自定义菜谱中覆盖它,以便以自己的方式调整此模板?
或者,也许还有其他更好的方法呢?
您应该创建自己的包装该apache2食谱的食谱,我们将其称为apache2_wrap。创建自己的* apache2_wrap / templates / default / default-site.erb *模板,并按照需要的方式在其中设置值。您的食谱应如下所示:
include_recipe 'apache2::default' #or whatever apache2 recipe you need
#enable default site yourself
template "#{node['apache']['dir']}/sites-available/default" do
source 'default-site.erb'
owner 'root'
group node['apache']['root_group']
mode '0644'
notifies :restart, 'service[apache2]'
end
apache_site 'default' do
enable true
end
我没有测试它,但是它应该可以工作。但是,存在1个潜在问题:看起来,"#{node['apache']['dir']}/sites-available/default"
每次厨师运行时,此文件都将被覆盖,首先是原始模板,然后是您的模板。它会启动apache2重新启动触发器,因此每次厨师运行时都会重新启动apache2服务(但我不确定-您应该对其进行测试!)。如果真是这样,它使您感到困扰,那么唯一的方法是在现有食谱的基础上创建自己的食谱。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句