...
Section | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
Berkshelf とは
Cookbook の依存関係を解決してくれるツールです。
http://berkshelf.com/
設定ファイル(Berksfile)に使いたい Cookbook を定義しておくと、その Cookbook が依存する Cookbook を含めて再帰的に Git や Opscode Community からとってきてくれます。
Ruby の Bundler と似ているらしいです。(Ruby わからない)
Berksfile の編集
プロビジョニング時に必要な外部の Cookbook は、このファイルをもとに berkshelf によって解決されます。Opscode Opscode Community の Cookbook であれば、次のように名前を指定するだけでOKです。であれば、次のように名前を指定するだけで OK です。
コード ブロック |
---|
source "https://apisupermarket.berkshelfgetchef.com" cookbook ‘tar'tar' cookbook 'java' metadata |
...
ヒント |
---|
Opscode Community |
...
Git リポジトリ
git: ‘https://path/to/cookbook.git’
...
以外の Cookbook を使うには次のように書きます。
|
Kitchen インスタンスの起動とプロビジョニング
では、作成した Cookbook を Kitchen のインスタンスへプロビジョニングしてみましょう。次のコマンドを実行すると、.kitchen.yml に基づいたインスタンスが起動し、Recipe が実行されます。
コード ブロック |
---|
$ kitchen setup |
プロビジョニングが成功したら、Kitchen 成功したら、Kitchen インスタンスにログインしてみてください。
コード ブロック |
---|
[vagrant] $ kitchen login
kitchen@localhost’s password: kitchen
|
※ パスワードは 'kitchen' のようです。
ログインできたら、Recipe が期待通りに動作したか確認してみてください。
/etc/sysconfig/jenkins の内容が書き換わっていて、jenkins サービスが実行されていれば OK でしょう。
コード ブロック |
---|
[kitchen] $ sudo service jenkins status jenkins (pid 17656) を実行中... [kitchen] $ exit |
ログインできたら、jenkins サービスが実行されているか確認してみましょう。
/etc/sysconfig/jenkins の内容も確認してみてください。
うまくいっていない場合は、Cookbook を修正し、次のコマンドでプロビジョニングをやり直します。
うまくいっていない場合は、Cookbook を修正し、再度プロビジョニングを行います。
コード ブロック |
---|
$ kitchen converge |
...
ヒント |
---|
うまくいかない場合は Kitchen |
...
インスタンスを破棄してからプロビジョニングを行います。
|
※
kitchen
...
の主なコマンド
コード ブロック |
---|
# インスタンスの生成 kitchen create # Chef-Solo のインストールと初回のプロビジョニング kitchen setup # プロビジョニング kitchen converge # Serverspec の実行 kitchen verify # ssh ログイン kitchen login # インスタンスの破棄 kitchen destroy |
...