kakakakakku blog

Weekly Tech Blog: Keep on Learning!

curl で Chef をインストールする時にバージョンを指定する

Chef Client の最新バージョンが 12.10.24 から 12.11.18 に変わったらしく,シェル経由のオムニバスインストーラーを使うと最新 12.11.18 がインストールされるようになっていた.

コンテナに対して実行してる chef-solo が落ちるようになった

以下の記事にまとめた通り,現在 CircleCI を使って Docker コンテナに対して chef-solo を実行して Serverspec でテストするという運用をしていて,昨日からテストが落ちるようになってしまった.

kakakakakku.hatenablog.com

最初は CircieCI 側の問題かなと思ったけど,ログを見てみると chef-zero が起動していて,chef-solo を実行してる Dockerfile に問題があるなとわかった.

Step 8 : RUN cd ${CHEF_HOME} && /usr/bin/chef-solo -c ${CHEF_HOME}/solo.rb -j ${CHEF_HOME}/nodes/circleci.json
 ---> Running in 2576ecb1f794
[2016-06-09T14:17:00+01:00] INFO: Started chef-zero at chefzero://localhost:8889 with repository at /chef
[2016-06-09T14:17:03+01:00] INFO: #<ChefZero::RestErrorResponse: 404: Object not found: chefzero://localhost:8889/nodes/d3b3edb1ab99>

RELEASE_NOTES.md を見たところ "Replace chef-solo with chef-client local mode" という変更があって,もしかしたら関連してるかも.まだ詳しく調べられて無くて,もしかしたら違う可能性もある.

github.com

オムニバスインストーラーでバージョンを指定する

取り急ぎ,以下のコマンドでインストールすると最新になってしまうため,バージョンを指定したいと考えた.

$ curl -L https://www.opscode.com/chef/install.sh | bash

以下のように curl でスクリプトを取得して実行する場合,以下のようにオプションを指定することができる.このシンタックスは知らなくて勉強になった.

$ curl -L https://www.opscode.com/chef/install.sh | bash -s -- -v 12.10.24

と思ったらドキュメントにも書いてあった.