概括:

概括:

概括:

我遇到了「knife data bag from file」的問題,其中 knife 無法識別從遠端 git 儲存庫中拉下的 .json 封包檔案。

背景:

我目前正在嘗試從廚師單獨使用過渡到廚師伺服器,同時使用遠端 git 儲存庫中的食譜、資料包和其他廚師資訊。

我目前已經下載了 git 儲存庫的副本,並在 Knife.rb 中設定了說明書路徑和資料包路徑。我還加載了食譜,進行了調整等。

細節:

當嘗試透過執行「從檔案資料夾檔案新增刀資料包」來載入我們的 .json 封包時,看起來它一直有效,直到我執行「刀封包清單」並且它顯示為空白。因此,我決定嘗試在末尾添加編輯選項,以查看正在加載的內容(如果有)。這是我得到的錯誤:

knife data bag from file local_settings test.json -e nano
ERROR: Could not find or open file 'test.json' in current directory or in 'data_bags/local_settings/test.json'

資料包檔案確實存在於經過測試的工作 json 檔案中的正確位置。我有時也會收到一條錯誤訊息「無法開啟資料包「local_settings」。

我顯然希望將資料包路徑保留在適當的 git repo 資料夾中,以便能夠追蹤更集中的位置(我們的 git repo,而不是廚師伺服器)中的變更。

任何正確方向的解決方案、建議或指示都值得讚賞。

答案1

我認為使用-e nano選項是無效的knife data bag from file(儘管命令列幫助暗示了其他情況),但應該忽略它。該錯誤意味著 Knife 找不到您指定的 json 檔案。當你說該物品位於正確位置時,它到底在哪裡?請注意,knife 將相對於您當前的目錄而不是您的廚師存儲庫進行查找。

解決這個問題後,您將遇到另一個問題 - 您需要先建立資料包,然後才能在其中新增項目。knife data bag list創建後它應該立即顯示在輸出中:

 $ knife data bag create local_settings
Created data_bag[local_settings]
 $ knife data bag list
  local_settings

「刀具資料包」的文檔可以在這裡找到:http://wiki.opscode.com/display/chef/Managing+Data+Bags+With+Knife

答案2

我照做了knife data bag list,結果顯示為空白。

這意味著數據包local_settings尚未創建。

因此,應該創建它:

$> knife data bag create local_settings
Created data_bag[local_settings]

那麼如果伺服器的資料包它應該出現在列表中:

$> knife data bag list
  local_settings

然後就可以上傳{{test.json}}封包檔了。

另外,這裡有一些關於實際發生的事情的很好的解釋:[CHEF 維基上的連結]

相關內容