ページ ツリー

比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

...

Section
Column
width720px

Cookbook を Eclipse プロジェクトとしてインポートしましょう。

まずは、Eclipse プロジェクトを生成します。

コード ブロック
$ cd jenkins
$ gen-eclipse

 

Eclipse を起動して、生成したプロジェクトをインポートします。

Section
Column

1.


アプリケーション -> プログラミング -> Eclipse 

Column

2.


OK 

Section
Column

3.


File -> Import...

Column

4.


General -> Existing Projects into Workspace

Section
Column

5.


Browse -> 「jenkins」ディレクトリを選択 -> OK -> Finish

Column
Section
bordertrue
Column

`gen-eclipse` は Eclipse プロジェクトを生成するシェルスクリプトです。

 

Recipe を書こう

前準備

Section
Column
width720px

 Recipe を書く前に、どのような内容の Recipe を書くかを決めましょう。

今回は Jenkins をインストールする Cookbook ですので、まずは Jenkins のインストール方法をおさらいしておきましょう。
手動でインストールすると、次のような手順になるかと思います。

コード ブロック
$ yum install java-1.7.0-openjdk
$ wget http://pkg.jenkins-ci.org/redhat/jenkins-1.576-1.1.noarch.rpm
$ yum install jenkins-1.576-1.1.noarch.rpm
$ service jenkins start
$ chkconfig jenkins on

これを Chef の Recipe にするとどうなるでしょうか。
見ていきましょう。 

Column
Section

インストール先は CentOS 6.5 です。

他にもインストール手順は様々ですが、今回はこの手順でインストールするものとして進みます。

 

default Recipe を書く

Section
Column
width720px

Cookbook のメイン Recipe をつくります。 

内容は、Jenkins をインストールするものです。

コード ブロック
languageruby
titlejenkins/recipes/default.rb
# OpenJDK をインストール(Jenkins の実行に必要なため)
yum_package 'java-1.7.0-openjdk'

# Jenkins の rpm をダウンロード
remote_file "#{Chef::Config[:file_cache_path]}/jenkins-1.568-1.1.noarch.rpm"
  source 'http://pkg.jenkins-ci.org/redhat/jenkins-1.568-1.1.noarch.rpm'
  action :create_if_missing
end

# Jenkins をインストール
yum_pakcage "#{Chef::Config[:file_cache_path]}/jenkins-1.568-1.1.noarch.rpm"
 
# Jenkins サービスを自動起動
service 'jenkins' do
  action [:start, :enable]
end
Column
Section
bordertrue
Column

 Recipe にはサーバーのあるべき状態を Resource として定義します。

ここでいう yum_package や remote_file、service などが Resource の定義です。

基本的な Resource 定義の書式は次のようになっています。

コード ブロック
<ResourceType> "ResourceName" do
  <Attribute> "hoge"
  <Attribute> "fuga"
  action <Action>
end

Resource がどのような Attribute や Action を持つかは ResourceType により様々です。
Chef のドキュメントを参照するとよいでしょう。

ヒント
title今回登場する ResourceType の概要とドキュメントのリンク
ResourceType概要ドキュメント
yum_packageパッケージのインストールhttp://docs.getchef.com/resource_yum.html
remote_fileWeb 上のファイルをダウンロードhttp://docs.getchef.com/resource_remote_file.html
serviceサービスの制御http://docs.getchef.com/resource_service.html

...