我是Chef的新手,我正在运行AWS OpsWorks环境并通过Chef 11.10部署代码。我正在尝试在运行apache2的实例的vhost文件中创建两个alias
行:
alias /foo /my/dir/name/
alias /bar /another/my/dir/name
我在S3存储桶中有一个自定义菜谱,OpsWorks成功地将其提取并分发到所有实例。在该自定义食谱中,我有一个名为vhosts.rb
的食谱:
include_recipe "apache2"
web_app "Test1" do
server_name "Web1.com"
server_aliases ["www.Web1.com"]
allow_override "all"
docroot "/srv/www/web_test/current/sites/"
end
这样就可以很好地创建一个vhost文件,但我无法弄清楚如何添加别名行。我查看了OpsCode默认的apache2 cookbook,但在alias
,default.rb
,mod_alias
或{中找不到对通用web_app
命令/参数的任何引用{1}}。
如何添加这些别名行?我确信这很容易,但是我淹死了想要解决这个问题。任何帮助将不胜感激。
答案 0 :(得分:4)
apache2 cookbook的web_app
提供程序不支持在生成的conf文件中添加Alias
指令。完成您所需要的最简单方法是在templates/default/web_app.conf.erb
扩展模板文件并添加类似于以下内容的块:
<% if @aliases -%>
<% @aliases.each do |alias| -%>
Alias <%= alias %>
<% end -%>
<% end -%>
然后,将您的web_app
电话改为:
web_app "Test1" do
server_name "Web1.com"
server_aliases ["www.Web1.com"]
allow_override "all"
docroot "/srv/www/web_test/current/sites/"
aliases ["/foo /bar", "/baz /meh"]
end
web_app
定义将通过任何额外的参数传递给模板,使它们可用作实例变量。
注意:有一些不同的技术可用于修改模板文件。你可以直接在S3文件中更改它,或者你可以做一个完整的包装菜谱并通过Berkshelf进行管理。