2017-03-09 42 views
0

我們有一個本地Ruby庫,我們將其包含在我們的許多Ruby項目中。它包含了很多配置信息,這些信息在我們的廚師腳本中非常有用。這允許我們將所有的配置放在一個地方,所以我們不必在每次更改數據庫時都創建多個地方。試着讓代碼保持乾爽。話雖如此,代碼是直接的紅寶石功能,而不是廚師DSL。廚師共享紅寶石函數或庫

我一直在試圖拉庫到廚師,但發現它非常困難。這讓我覺得我正在反對某種模式。

我試過了,沒有工作。 - 通過require_relative添加Ruby代碼幷包含。 - 將Ruby代碼添加到自己的食譜中,然後包裝食譜。 - 創建本地紅寶石(不能通過rubygems或其他回購獲取)

工作原理: - 將代碼複製並粘貼到食譜中。 (但它不是共享。)

我真正的問題,什麼是分享這一Ruby代碼庫以及很多食譜的最好方法?取決於最好的方式,你是如何做到的?或者指向正確的方向。

謝謝。 myles。

回答

0

我會用Halite(免責聲明:我的項目)創業板轉換成菜譜,然後上傳它作爲一本菜譜。然後你可以依賴它並且像在你的廚師代碼中正常一樣從它那裏得到東西。

0

您可以創建一個菜譜和Ruby代碼複製到菜譜庫文件夾中。然後,只要將烹飪書納入運行列表,Chef就會自動在節點上加載它。

你能告訴,究竟你做了什麼,什麼也沒有,當你試圖「Ruby的代碼添加到它自己的食譜,然後換菜譜」工作?

0

我創建了一個紅寶石庫。基本上,它讀取opsworks中的服務器的ip。一旦它知道它在什麼環境中,它就會設置一個散列。這個散列然後用來設置屬性。這樣所有的服務器配置都存儲在一個地方。

我可以把代碼中的每個不同的食譜需要它。但是,我必須在每個不同的食譜中複製代碼。我想將代碼放在一個地方,並將其包含在每本食譜中。這樣,如果我必須修改它,我只需要在一個地方完成。

我試圖使它成爲一個寶石,並沒有運氣需要它。
我還創建了一本食譜,只有庫中的ruby代碼。然後,我在另一個菜譜中加入了「依賴等」,並試圖運行庫函數,但是我無法使其工作。

我可能已經在正確的軌道上,但我停我得到它的工作之前。

基本上我想要寫一個簡單的Ruby代碼庫,我可以在我想要的菜譜使用。必須有辦法做到這一點,但我遇到了一些死衚衕。我會一直把頭撞在牆上。最終,一個洞將打開!