2017-03-08 2 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

シェフサーバーから料理ブックを削除するには、「ナイフ料理ブック削除」を使用します。 – StephenKing

答えて

0

強制モードを使用すると、凍結されたアップロードの保護が効果的に無効になります。これは、推奨されていないか、Berkshelfでデフォルトにしていません。冷凍調理帳とは、同じバージョン番号への今後のアップロードが防止され、アップロードされた料理書の内容があなたのもとから変更されないことを保証することを意味します。 Test Kitchen前の悪い昔、CookbookをテストするときにChef Serverを開発またはステージングする必要があったため、毎回バージョンバンプを必要としたくないというのは非常に一般的でした。フリーズモードは、一般的にBerksがやっている「実際の」アップロードを対象としています。

StephenKingが指摘しているように、knife cookbook deleteは料理ブックを削除する正しい方法ですが、これは非常にまれに行う必要があります。あなたが言及しているエラーは、あなたのナイフの構成が気になるからです。

+0

ありがとうございます。なぜ私は料理書をアップロードするのに 'berkshelf'を使う必要があり、それを削除するのに' knife 'を使う必要がありますか? – Jordi

+0

サーバーから自分の料理本を削除できました。それにもかかわらず、私はすべての依存関係を削除したいと思います...どんなアイデアですか? – Jordi

+0

berksは一般的なAPIツールではなく、再帰的な削除は一般的なツールではないので、berksは一般的なAPIツールではありません。 – coderanger

0

私の料理本のバージョンを管理するには、ブートストラップとノードのプロビジョニングのために、knifeberksコマンドをラップするbashで書かれたビルドツールを使用しています。これは、料理のバージョンを自動的に更新し、シェフのサーバーにアップロードするツールです。

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を渡すと、バージョンが増えます。

関連する問題