Chef Client の最新バージョンが 12.10.24
から 12.11.18
に変わったらしく,シェル経由のオムニバスインストーラーを使うと最新 12.11.18
がインストールされるようになっていた.
コンテナに対して実行してる chef-solo が落ちるようになった
以下の記事にまとめた通り,現在 CircleCI を使って Docker コンテナに対して chef-solo を実行して Serverspec でテストするという運用をしていて,昨日からテストが落ちるようになってしまった.
最初は 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" という変更があって,もしかしたら関連してるかも.まだ詳しく調べられて無くて,もしかしたら違う可能性もある.
オムニバスインストーラーでバージョンを指定する
取り急ぎ,以下のコマンドでインストールすると最新になってしまうため,バージョンを指定したいと考えた.
$ 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
と思ったらドキュメントにも書いてあった.