2017-03-08 203 views
0

我正在使用berkshelf處理我的食譜依賴關係。爲了上傳我的服務器上我的食譜:處理食譜

berks upload --force 
  1. 這是最好的選擇嗎?
  2. 我試圖刪除/刪除我的食譜表單服務器。我無法找到任何berks remove/delete cookbook命令。我正在嘗試使用knife delete cookbook。我收到了一條消息:

ERROR: Attempt to use relative path 'berk' when current directory is outside the repository path. ERROR: Current working directory is 'D:/projects/living/vagrant/production/berk/berk'.

我怎麼能處理呢?

+0

用'--force'命令是否是最好的選擇? :D – StephenKing

+0

使用'knife cookbook delete'從主廚服務器上刪除食譜。 – StephenKing

回答

0

使用強制模式有效地禁用凍結上傳的保護,這是不推薦的,或者我們不會在Berkshelf中將其設置爲默認值。凍結的食譜意味着未來上傳到相同的版本號將被阻止,確保上傳的食譜內容不會從你的下面更改。在Test Kitchen之前的惡劣日子,在測試食譜時,必須上傳到開發或分級廚師服務器是非常常見的,所以我們不希望爲了簡單而每次都要求版本顛簸。凍結模式旨在用於「真正的」上傳,這通常是Berks正在做的。

正如StephenKing指出的,knife cookbook delete是刪除食譜的正確方法,但您應該很少這麼做。你提到的錯誤是因爲你的刀子配置對你而言很怪異。

+0

謝謝@coderanger。爲什麼我需要使用'berkshelf'來上傳食譜,我需要用'knife'去除它? – Jordi

+0

我已經能夠從服務器上刪除我的食譜。不過,我也想刪除它的所有依賴關係......任何想法? – Jordi

+0

因爲berks不是一個通用的API工具,並且遞歸刪除不夠常用,所以它們不需要專門的工具。 – coderanger

0

要管理我的食譜的版本,我使用了bash編寫的構建工具,它包裝了knifeberks命令以便引導和配置節點。部分工具是自動更新食譜版本並將其上傳到廚師服務器。

v=`grep version cookbooks/$1/metadata.rb` 
v=${v#*version} 
v=${v#*\'} 
v=${v%*\'} 
echo $v 
VERSION="${v%.*}.$((${v##*.}+1))" 
echo $VERSION 
sed "s/$v/$VERSION/g" cookbooks/$1/metadata.rb > output.txt 
mv output.txt cookbooks/$1/metadata.rb 

然後您傳遞./version_updater.sh my_cookbook,您將增加版本。