...
情報 |
---|
Docker Engine は Linux でのコンテナ型の仮想化を提供するツールです。 ハイパーバイザ型がマシンそのものをエミュレートするのに対し、コンテナ型の仮想化ではホストマシンのカーネル上に独立したユーザー空間を構築するのにとどまります。 Image Modified
ハイパーバーザ型と比較すると、コンテナ型の仮想化はホストのもつリソースをほぼそのまま扱えるため、より軽量・高速に仮想化を実現できます。 また、Docker Engine ではコンテナの差分管理が可能です。 たとえば、いちど CentOS をインストールしたコンテナをつくってしまえば、CentOS + apache や CentOS + MySQL などのコンテナを構築するときに毎回 CentOS をインストールする必要はありません。 Image Modified
|
.kitchen.yml の編集
作成した Recipe が期待したとおりに動いているか確認してみましょう。
確認には Kitchen を利用すると便利です。
Kitchen とは、任意の環境をインスタンスとして起動し、プロビジョニングを行い、その結果を検証できるツールです。
インスタンスは何度でも簡単に作り直すことができるので、気軽に Chef の Recipe を試すことができます。
まずは Kitchen を使用するために、設定ファイル Kitchen でインスタンスを立てて Recipe を実行するには、.kitchen.yml を編集しましょう。を編集します。
Section |
---|
Column |
---|
コード ブロック |
---|
| driver:
name: docker
provisioner:
name: chef_solo
platforms:
- name: centos-6.4
driver_config:
image: centos:centos6
forward: 8080
suites:
- name: default
run_list:
- recipe[tar::default]
- recipe[java::default]
- recipe[jenkins::default]
attributes:
java:
install_flavor: oracle
jdk_version: 7
java_home: /usr/java/default
oracle:
accept_oracle_download_terms: true |
|
Column |
---|
driver標準では Vagrant を利用しますが、Cookbook の開発サイクルをより早くまわすために、軽量・高速な docker を使用します。 Kitchen から docker を利用するには docker Engine、kitchen-docker のインストールが必要です。 driver_configkitchen-docker の設定です。詳細は kitchen-docker のドキュメント [ https://github.com/portertech/kitchen-docker ] を参照してください。 image で、ベースとする docker image の名前を指定します。 利用できる image 名は Dockerfile の FROM 句 [ https://docs.docker.com/reference/builder/#from ] で指定できるものと同じです。 forward ではホストマシンにフォワーディングするポート番号を指定します。 今回は jenkins が使用する 8080 ポートをホストマシンから見えるようにフォワーディングするように指定しています。 run_listプロビジョニング時に実行する Recipe を指定します。 Jenkins の動作には Java が必要ですので、Opscode Community の java Cookbook を使ってインストールするように指定しています。 また、java Cookbook の動作には tar が必要なので、これも Opscode Community の tar Cookbook を使うように指定しています。 そして、自作した jenkins Cookbook も忘れずに指定します。 ※ プロビジョニングに外部の Cookbook が必要な場合は後述する Berksfile の編集が必要です。 attributesプロビジョニング時に Recipe にわたす Attribute を指定します。 Attribute とは、 Recipe に対するパラメータのようなものです。 今回は java Cookbook の Attribute を指定しています。 詳細は java Cookbook の README.md [ http://community.opscode.com/cookbooks/java ] を参照してください。 |
|
...