【问题标题】:Chef - Trying to add an apache2 alias to a vhost fileChef - 尝试将 apache2 别名添加到 vhost 文件
【发布时间】:2014-08-29 20:18:44
【问题描述】:

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

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

【问题讨论】:

    标签: apache amazon-web-services chef-infra aws-opsworks


    【解决方案1】:

    apache2 食谱的 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 进行管理。

    【讨论】:

    • 这太完美了!谢谢!像魅力一样工作!
    猜你喜欢
    • 2018-03-02
    • 2010-11-14
    • 2016-09-27
    • 1970-01-01
    • 2011-07-22
    • 2014-12-19
    • 2018-04-29
    • 1970-01-01
    • 2018-01-06
    相关资源
    最近更新 更多