為什麼“從文件中取刀數據包”在 Chef 伺服器上找不到現有的 json 文件?
概括:
我遇到了“文件中的刀數據包”的問題,其中刀無法辨識從遠端 git 儲存庫中提取的 .json 數據封包件。
背景:
我目前正在嘗試從廚師單獨使用過渡到廚師伺服器,同時使用我們遠端 git 儲存庫中的食譜、數據包和其他廚師資訊。
我目前已經下載了我們的 git repo 的副本,並在 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,而不是 chef 伺服器)跟踪更改。
任何朝著正確方向的解決方案、建議或指示都將受到讚賞。
我不認為使用
-e nano
選項是有效的knife data bag from file
(儘管命令行幫助另有暗示),但它應該被忽略。該錯誤意味著刀找不到您指定的json文件。當您說該項目位於正確的位置時,它到底在哪裡?請注意,knife 將相對於您目前的目錄,而不是相對於您的 chef-repo。解決了該問題後,您將遇到另一個問題-您需要先創建數據包,然後才能向其中添加項目。它應該在創建後立即顯示在
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