web-dev-qa-db-ja.com

「ファイルからナイフのデータバッグ」がchefサーバー上の既存のjsonファイルを見つけられないのはなぜですか?

概要:

「ファイルからのナイフデータバッグ」で問題が発生しています。この場合、ナイフはリモートgitリポジトリからプルされた.jsonデータバッグファイルを認識しません。

バックグラウンド:

私は現在、リモートgitリポジトリからクックブック、データバッグ、その他のシェフ情報を使用しながら、シェフソロ使用からシェフサーバーに移行しようとしています。

私は現在、gitリポジトリのコピーをプルダウンして、クックブックパスとデータバッグパスをknife.rbに設定しています。クックブックの読み込み、調整なども行いました。

詳細:

「knifedatabag add from file FOLDER FILE」を実行して.jsonデータバッグを読み込もうとすると、「knife data bag list」を実行して空白になるまで、機能したように見えます。そこで、最後に編集オプションを追加して、何がロードされているかを確認することにしました。これは私が得るエラーです:

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リポジトリ)での変更を追跡できるように、データバッグパスを適切なgitリポジトリフォルダー内に保持したいのは明らかです。

正しい方向への解決策、アドバイス、または指針はありがたいです。

5
ellisera

-e nanoオプションknife data bag from fileを使用することは有効ではないと思いますが(コマンドラインヘルプは別の方法を意味しますが)、無視する必要があります。このエラーは、指定した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
zts

私がやります 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 wikiのリンク]