2014-09-26 94 views
0

我对厨师很新颖。我使用它来配置一个使用apache2-windows食谱的流浪者开发环境,这种方式通过文档方式很不方便。我已经设法安装它,甚至可以很好地与opscodes php烹饪书一起玩,但我正在努力让它设置一个虚拟主机。在主厨中添加一个虚拟主机apache2-windows cookbook

到目前为止,我已经添加了虚拟主机“额外”到/attributes/default.rb像这样:

default['apache']['windows']['extras'] = ["vhosts"] 

,成功地增加了一个“vhosts.d”目录到Apache根,包括的httpd的虚拟主机。配置在httpd.conf中,并在httpd-vhosts.conf中添加一个条目,该条目在'vhosts.d'目录中包含* .conf。

不幸的是,我不能完全弄清楚如何使用配方提供的虚拟主机资源,它看起来应该使用/templates/default/virtualhost.conf将我的虚拟主机放入'vhosts.d'。 erb模板。

我加入以下到/recipes/default.rb

virtualhost "mysite.localhost" do 
    server_aliases ["www.mysite.localhost"] 
    docroot "/vagrant" 
    action :create 
end 

,但失败了,告诉我的虚拟主机‘为‘厨师::配方‘默认’’“没有命名的资源或方法’。

我错过了什么?我还需要做些什么才能让我在我的配方中使用虚拟主机资源?

回答

1

这是与图书馆食谱/ LWRP的警告之一,他们的名字是从食谱名称派生。

文件是HERE

如果Apache2的窗口是不是你在你的食谱metadata.rb与depends 'apache2-windows'来定义它的运行列表。

但这里的主要问题是,虚拟主机的资源将被命名为apache2_windows_virtualhost由于两件事情:

  • 资源从菜谱名称派生而来,因此它成为cookbook_resource
  • 红宝石不允许-在类名称中,所以它们被神奇地转换为_用于资源调用。

tl; dr;使用这个

apache2_windows_virtualhost "mysite.localhost" do 
    server_aliases ["www.mysite.localhost"] 
    docroot "/vagrant" 
    action :create 
end 
+0

工作了一种享受。非常感谢 - 我无法在任何地方找到这种记录! – Nate 2014-09-26 14:12:18

+0

谢谢,我忘了链接到官方文档,但类/资源名称的部分是隐藏的。 – Tensibai 2014-09-26 14:17:06