[Chef]レシピの中でwgetって書かない方がいいよ
wget先のファイルがいつもあるとは限らない
覚えたてのChef-soloでレシピをもりもり書いて、完成したーー!!ってなって、翌日、まっさらの仮想マシンでレシピを実行しなおしたら見事にコケました。
コケたのはこれ。
wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/ImageMagick-6.8.7-2.tar.gz
ImageMagickをソースからコンパイルするレシピ。なんでやねんと思って kddlabsさんのサイトをブラウザで開いてみたらぎょっとした。
ImageMagick-6.8.7-3.tar.gz がめでたくリリースされていて、ImageMagick-6.8.7-2.tar.gz は消えていました。orz
ああ、そうか、そうだよな。
人様が運営しているFTPサーバに、いつもつねに同じファイルがあるとは限らないよな、という当たり前のことを学びました。
対策:cookbook_fileリソースを活用しよう
- tar.gzファイルをあらかじめ取得しておく
- それをcookbookディレクトリ/files/default/ 下にコミットしておく
cookbook_file "ImageMagick" do
# "cookbook_dir/files/default/" からの相対パス
source "ImageMagick.tar.gz"
# destination
path "/usr/local/src/ImageMagick.tar.gz"
end
これで幸せになれます。Happy Provisioning !
カテゴリ:
Chef