...
Section |
---|
Column |
---|
コード ブロック |
---|
| ---
driver:
name: docker
provisioner:
name: chef_solozero
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 ですが、開発サイクルを早くまわすために、より軽量・高速な docker を使用します。 driver_configkitchen-docker の設定を書きます。 image ベースとする docker image の名前を指定します。 利用できる image 名は Dockerfile の FROM 句 で指定できるものと同じです。 forwardホストマシンにフォワーディングするポート番号を指定します。 この例では jenkins が使用する 8080 ポートがホストマシンから見えるように指定しています。 run_list実行する Recipe を指定します。 この例では自作した jenkins Cookbook の Recipe を指定しています。 ただ、Jenkins の動作には Java が必要ですので、Opscode Community の java Cookbook、tar Cookbook(java Cookbook の動作に必要) も指定しています。 ※ 外部の Cookbook を使用するには後述する Berksfile の編集が必要です。 attributesRecipe にわたす Attribute (Recipe に対するパラメータのようなもの)を指定します。 今回は java Cookbook の Attribute を指定しています。 |
|
...
Opscode Community の Cookbook であれば、次のように名前を指定するだけで OK です。
コード ブロック |
---|
source "https://supermarketapi.getchefberkshelf.com"
cookbook 'tar'
cookbook 'java'
metadata |
ヒント |
---|
Opscode Community 以外の Cookbook を使うには次のように書きます。 コード ブロック |
---|
# ローカルファイルシステム
cookbook 'pvpnet', path: '/Users/reset/code/riot-cookbooks/pvpnet-cookbook'
# Git リポジトリ
cookbook 'mysql', git: 'git://github.com/opscode-cookbooks/mysql.git' |
|
...
ログインできたら、Recipe が期待通りに動作したか確認してみてください。/etc/sysconfig/jenkins の内容が書き換わっていて、jenkins サービスが実行されていれば OK でしょう。
コード ブロック |
---|
[kitchen] $ sudo service jenkins status
jenkins (pid 17656 1647) を実行中is running...
[kitchen] $ sudo grep JENKINS_USER /etc/sysconfig/jenkins
JENKINS_USER="kitchen"
[kitchen] $ stat --format='%a %U:%G %n' /var/*/jenkins
750 kitchen:kitchen /var/cache/jenkins
755 kitchen:kitchen /var/lib/jenkins
750 kitchen:kitchen /var/log/jenkins
[kitchen] $ exit |
うまくいっていない場合は、Cookbook を修正し、再度プロビジョニングを行います。
コード ブロック |
---|
$ kitchen converge |
ヒント |
---|
うまくいかない場合は どうしてもうまくいかない場合は Kitchen インスタンスを破棄してからプロビジョニングを行います。 コード ブロック |
---|
$ kitchen destroy
$ kitchen setup |
|
...