moxt

Just another Blog site

Chef::Exceptions::ChecksumMismatch:というエラーの対処

   

今頃になってChefの話。

チェックサムの形式をミスってる可能性がある。
ChefではSHA-256チェックサムを採用してるっぽい。
なので、SHA-256チェックサムであるか確認しよう。
Macだったらこんな感じ。

以下は雑談。

ChefとChecksumの関係

nginxやpythonといったソフトをソースから構築するRecipeを作りたい。
と、いうときにremote_fileというリソースを使ってソースコードをダウンロードしてくるかと思う。

で。
remote_fileのドキュメントに書いてるがチェックサムオプションってのが存在する。
これを有効にすると無駄なダウンロードを省略してくれる。
ダウンロードする前にホスト側に次のような確認を行う

  • 対象ファイルが存在するか確認
  • チェックサムオプションで与えられた値と、対象ファイルのチェックサムを比較
  • チェックサムが合致すればダウンロードせずに手元のファイルを使う
  • チェックサムが合致しなければエラー(Chef::Exceptions::ChecksumMismatch)を吐く

と、いうわけで表題のエラーが発生したらチェックサムが間違ってるってこと。
ドキュメントを読む。

Optional, see use_conditional_get. The SHA-256 checksum of the file. Use to prevent a file from being re-downloaded. When the local file matches the checksum, the chef-client does not download it.

と、いうわけで。
SHA-256チェックサムであるか確認しよう。
Macだったらこんな感じ。

 - プログラミング

  • このエントリーをはてなブックマークに追加
  • follow us in feedly