2014-09-26 103 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