2017-02-14 23 views
-1

我試圖使用超級有用的chef data bag來存儲允許我訪問SFTP服務器的私鑰。現在,在我的情況下,由chef管理的節點都需要在.ssh目錄中包含這些private keys廚師食譜從數據包中讀取並寫入.SSH目錄

到目前爲止,我已經能夠通過這樣做是爲了創建一個新的data bag

knife data bag create keys mySFTP其中keys是包裏mySFTP是它的一個項目。此項目看起來像這樣:

id:  nifi 
password: This is all the password that we will ever need. oashdkjashdk28374983q7489ahskjdhaskjdhq834y93q4 HEHEHE 

**請注意,我確實使用加密數據袋,這裏沒有顯示。

現在,我想我需要創建一個可以讀取私鑰並將其推送到所有節點的配方。我可以使用文件模板創建一個名爲mySFTP.key的新文件,並嘗試從數據包中轉儲私鑰?

我的直接問題是:如何編寫我的receipe,它將能夠讀取存儲在我的數據包中的數據並將內容寫入.ssh目錄。最後,節點應該能夠連接到我的SFTP服務器。

+1

嘗試通過https://learn.chef.io,因爲它會真正幫助您避開基地。 – Tensibai

回答

1

您將使用filetemplate資源。使用file資源,您可以直接在配方代碼中指定內容,使用template您可以使用Erb模板並通過variables屬性傳入值。

+0

如何訪問要在我的文件資源腳本中使用的數據庫內部的變量? – summerNight

+1

'data_bag_item'輔助函數返回可以像普通哈希一樣使用的東西。所以'x = data_bag_item('keys','mySFTP')''和'變量password:x ['password']'或者類似的東西。 – coderanger