1

我是 Chef 的新手,正在运行 AWS OpsWorks 环境并通过 Chef 11.10 部署代码。我正在尝试alias在运行 apache2 的实例上的 vhost 文件中创建两行:

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 食谱,但在、、或中找不到对通用alias命令/参数的任何引用。default.rbmod_aliasweb_appweb_app.conf.erb

如何添加这些别名行?我敢肯定这很容易,但我正在试图弄清楚这一点。任何帮助将不胜感激。

4

1 回答 1

4

apache2 食谱的web_app提供者不支持Alias在生成的 conf 文件中添加指令。完成你想要做的最简单的方法是扩展模板文件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 进行管理。

于 2014-07-09T21:20:59.643 回答