2015年5月28日木曜日

jenkinsの導入 chefを使ってjenkinsを導入する

  • 公開日:2015年05月28日

最近何度かjenkinsを構築する機会があったので、手順化しました。
chefを使ったjenkinsの構築方法です。

環境

  • centos6.5(vagrant)

chefのインストール

chefdkを使ってchefをインストールします。


# install chef dek
sudo rpm -ivh https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chefdk-0.3.5-1.x86_64.rpm

# temporary setting path
export PATH=/opt/chefdk/embedded/bin:$PATH

# knife install
chef gem install knife-solo

安定しているchef11系を利用します。

cookbookの用意


knife solo init chef-repo

knife soloでリポジトリを作成しています。knife zeroでも問題ありません。

Berkfileの記述


site :opscode
cookbook 'java'
cookbook 'jenkins'

javaはversion8を利用するので、jenkinsのopscodeとは別に導入します。

Berkfile実行


berks vendor cookbooks

Berksfile.lockが作成されます。私の環境では以下のようになりました。


DEPENDENCIES
  java
  jenkins

GRAPH
  apt (2.7.0)
  java (1.31.0)
  jenkins (2.3.1)
    apt (~> 2.0)
    runit (~> 1.5)
    yum (~> 3.0)
  packagecloud (0.0.18)
  runit (1.6.0)
    packagecloud (>= 0.0.0)
  yum (3.6.0)


role作成

jenkins用のroleを用意します。


{
  "name": "jenkins",
  "default_attributes": { },
  "override_attributes": {
    "java": {
      "install_flavor": "oracle",
        "jdk_version": "8",
        "java_home": "/usr/local/java",
        "oracle": {
            "accept_oracle_download_terms": "true"
          }
        }
    },
  "chef_type": "role",
  "json_class": "Chef::Role",
  "run_list" : [
    "recipe[java]",
    "recipe[jenkins::master]"
  ]
}

ファイル名はroles/jenkins.jsonにします。

enviroment作成

開発用のenviromentを用意します。jenkinsだからproductでいいのかもしれません。好みですかね。


{
  "name":"development",
  "chef_type": "environment",
  "json_class":"Chef::Environment",
  "description":"web server role",
  "default_attributes": {},
  "override_attributes": {}
}

node作成


{
  "environment": "development",
  "run_list": [
    "role[jenkins]"
  ],
  "automatic": {
    "ipaddress": "192.168.33.50"
  }
}

ipaddressは立ち上げているvagrantのipaddressです。

実行


knife solo cook 192.168.33.50

確認(java)


java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)

確認(jenkins)


http://192.168.33.50:8080/

10分でjenkinsが動かせます。とはいえ、pluginは自力で入れないと画面に反映されないので、地道に導入していきましょう。

以上

*注意*chefのopscodeは自分用のrecipeを書くときにも非常に参考になります。
しかし、このjenkinsのopscodeはひどいコードなのでマネをしてはいけません。別の読みやすいコードを参考にしましょう

参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...