目次 |
---|
Kitchen を使う準備
Kitchen とは
Vagrant、EC2、Docker Engine など、任意のインスタンスを立てて、その中で Cookbook の動作を試行できるツールです。
http://kitchen.ci/
...
情報 | ||
---|---|---|
Docker Engine は Linux でのコンテナ型の仮想化を提供するツールです。 ハイパーバイザ型がマシンそのものをエミュレートするのに対し、コンテナ型の仮想化ではホストマシンのカーネル上に独立したユーザー空間を構築するのにとどまります。 ハイパーバーザ型と比較すると、コンテナ型の仮想化はホストのもつリソースをほぼそのまま扱えるため、より軽量・高速に仮想化を実現できます。 また、Docker Engine ではコンテナの差分管理が可能です。 Kitchen で Docker Engine を利用するには、kitchen-docker のインストールが必要です。
|
.kitchen.yml の編集
Kitchen でインスタンスを立てて Recipe を実行するには、.kitchen.yml を編集します。
Section | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
...
Berkshelf とは
Cookbook の依存関係を解決してくれるツールです。
http://berkshelf.com/
...
Ruby の Bundler と似ているらしいです。(Ruby わからないですし、Bundler も使ったことないですが)
Berksfile の編集
Opscode Community の Cookbook であれば、次のように名前を指定するだけで OK です。
...
ヒント | ||
---|---|---|
Opscode Community 以外の Cookbook を使うには次のように書きます。
|
Kitchen インスタンスの起動とプロビジョニング
次のコマンドを実行すると、.kitchen.yml に基づいたインスタンスが起動し、Recipe が実行されます。
...
ヒント | ||
---|---|---|
どうしてもうまくいかない場合は Kitchen インスタンスを破棄してからプロビジョニングを行います。
|
kitchen の主なコマンド
コード ブロック |
---|
# インスタンスの生成 kitchen create # Chef-Solo のインストールと初回のプロビジョニング kitchen setup # プロビジョニング kitchen converge # Serverspec の実行 kitchen verify # ssh ログイン kitchen login # インスタンスの破棄 kitchen destroy |
Web ブラウザで Jenkins にアクセス
docker コマンドでコンテナのポートを確認します。
...
コンテナの 8080 ポートがホストの 49154 にフォワーディングされていることが確認できます。
Firefox などの Web ブラウザで http://localhost:49154/ にアクセスしてみてください。
Jenkins の画面が表示されていれば成功です。