Chef を使ってみます。 Vagrant で環境をつくっておいてそこで色々試してみます。
今回はゲスト側でクックブック、レシピを作って実行してみます。
Chef のインストール
vagrant ssh
で Vagrant の環境に入って Chef をインストールする
1 2 3 |
|
Chef Solo がインストールされているか確認
1 2 |
|
クックブックを作る
Chef をインストールすると knife
というコマンドもインストールされる。
この knife
コマンドを使ってクックブックを作る
今回は git をインストールするための git クックブックを作る
コマンドは以下のように指定する
1
|
|
今回は出力先を指定する -o
オプションを指定
1
|
|
このコマンドで git という名前のクックブックが作成され、 /var/chef/cookbooks/git/recipes/default.rb
にレシピの雛形が作られる
レシピの編集
レシピの雛形に git をインストールするレシピを書く
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
クックブックの実行
作成したクックブックを実行する
1 2 3 4 5 6 7 8 9 10 11 |
|
git がインストールされたか確認
1 2 |
|
Chef の特徴
OS の違いを吸収してくれる
上記 git の例ではこちらで指定していないにも関わらず、実行した環境が CentOS であることを解釈して yum パッケージでインストールが行われた
実行された環境の OS 毎の違いを吸収してくれる
冪等性が担保されている
先ほどのクックブックをもう一度実行してみる
1 2 3 |
|
今回は何もせずに正常に終了したことが分かる
Chef ではクックブックを何度実行しても、クックブックに規定された状態になる冪等性が担保されている
参照
余談: Chef に関する記事は web 上にも色々ありますが、 Chef は用途によって様々なツール、使い方があり、基本的な用語や概念などを理解できていないと思わぬところでハマってしまいがちです。 Chef 実践入門 は Chef に関して体系的に理解できるので最初にサラッと読んでしまうのが近道だと感じました。