2013-03-10 42 views
2

在廚師創建符號鏈接:如何確保Chef中的符號鏈接上存在目錄路徑?

link "#{node[:tomcat][:home]}/webapps/myface.war" do 
    to "/srv/scafandru/current/myface.war" 
end 

失敗,因爲當時的父目錄丟失的節點上。

link resource我看不到任何屬性類似directory resourcerecursive true,所以我目前的做法是,以確保目錄結構由右聯之前運行

directory "#{node[:tomcat][:home]}/webapps" do 
    recursive true 
end 

存在。

是否有任何優雅的方式來封裝鏈接資源內的這種行爲?

回答

2

如果你不想寫代碼,你的解決方案是最好的。

如果您願意有更好的解決方案,您可以擴展提供程序鏈接以添加遞歸屬性。

要做到這一點,你可以參考opscode documentation,指出:

擴展現有的供應商

如果您想編寫一個LWP是 擴展另一個提供商類,你可以把它作爲一個混合, ,然後你將放置在庫目錄 的庫下使用該擴展類的食譜。

然後將編寫您的LWRP以將該庫包含在 提供程序實現中以訪問擴展的核心資源。 有關示例,請參閱傳輸手冊,其中包含一個 transmission_torrent_file LWRP,它允許您通過BitTorrent協議下載文件 。這transmission_torrent_file LWRP是 現有文件和remote_file資源的擴展。

+0

謝謝@kamaradclimber! – 2013-03-10 20:32:11

相關問題