driver軽量・高速な 標準では Vagrant を利用しますが、Cookbook の開発サイクルをより早くまわすために、軽量・高速な docker を使用します。 Kitchen から docker を利用するには kitchendocker Engine、kitchen-docker のインストールが必要です。 コード ブロック |
---|
$ chef gem install kitchen-docker |
※ 今回の環境には既にインストールされています。 driver_configcentos をベース image とします。kitchen-docker の設定です。詳細は kitchen-docker のドキュメント [ https://github.com/portertech/kitchen-docker ] を参照してください。 image で、ベースとする docker image の名前を指定します。 利用できる image 名は Dockerfile の FROM 句で指定できるものと同じです。 詳細は Dockerfile のリファレンスを参照してください。 句 [ https://docs.docker.com/reference/builder/#from ] で指定できるものと同じです。 forward ではホストマシンにフォワーディングするポート番号を指定します。 今回は jenkins が使用する 8080 ポートに http://localhost:8080 でアクセスできるように指定しています。 詳細は kitchen-docker のドキュメントを参照してください。 [ https://github.com/portertech/kitchen-docker ]ポートをホストマシンから見えるようにフォワーディングするように指定しています。 run_listプロビジョニング時に実行する Recipe を指定します。 Jenkins の動作には Java が必要なので、今回は Opscode が必要ですので、Opscode Community の java Cookbook を使うことにします。を使ってインストールするように指定しています。 また、java Cookbook の動作には tar が必要なので、これも Opscode Community の tar Cookbook を使います。を使うように指定しています。 自作した そして、自作した jenkins Cookbook も忘れずに指定しましょう。も忘れずに指定します。 ※ プロビジョニングに外部の Cookbook が必要な場合は後述する Berksfile の編集が必要です。 attributesプロビジョニング時に Recipe にわたす Attribute を指定します。 Attribute とは とは、 Recipe に対するパラメータのようなものです。 今回は Opscode コミュニティの java Cookbook の Attribute を指定しています。 詳細は java Cookbook の README.md を参照してください。 [ http://community.opscode.com/cookbooks/java ] を参照してください。 |