LoginSignup
1
2

More than 5 years have passed since last update.

Chef Client+BerkshelfでJenkinsを入れてみた

Last updated at Posted at 2017-08-18

久しぶりのChef

普段はCircleCIばかり使っているのですが、久しぶりにChefを使ってJenkinsをインストールすることになりました。久々すぎて完全に浦島太郎状態なのですが、今回はChef Client Local ModeとBerkshelfを使ってJenkinsをインストールしてみます。Chef Soloの時代が懐かしいです、、、

必要なファイル

最新のJenkinsを動かすには、Java8が必要です。Jenkinsのcookbookの中にもJavaのrecipeが入っているのですが、今回はJavaもBerkshelfを使ってインストールしてみます。
また、/etc/sysconfig/jenkinsファイルを編集して、タイムゾーンをJSTに設定するようにします。

ディレクトリ構成はこんな感じです。

Berkshelf
  |
  |
cookbooks/ ---- jenkins_server/ ------- metadata.rb
                                  | 
                                  |---- recipes/    ---- default.rb
                                  |
                                  |---- attributes/ ---- default.rb
                                  |
                                  |---- files/      ---- config_jenkins

Berkshelf

site :opscode

cookbook 'apt'
cookbook 'windows'
cookbook 'java'
cookbook 'jenkins'
cookbook 'yum-epel'

metadata.rb

name 'jenkins_server'
depends 'java'
depends 'jenkins'

metadata.rbのdependsでcookbookの依存関係を定義しておかないと、cookbookが見つからないとのエラーが出ます。軽くハマりどころでした。

recipes/default.rb

include_recipe 'java'
include_recipe 'jenkins::master'

# 設定ファイルをコピーする
cookbook_file 'config_jenkins' do
  path '/etc/sysconfig/jenkins'
  action :create
  notifies :reload, 'service[jenkins]'
end

attributes/default.rb

node.default['java']['install_flavor'] = 'openjdk' # ['oracle', 'oracle_rpm', 'openjdk', 'ibm', 'windows']
node.default['java']['jdk_version'] = '8'

files/config_jenkins

......
(省略)
......

## Type:        string
## Default:     "-Djava.awt.headless=true"
## ServiceRestart: jenkins
#
# Options to pass to java when running Jenkins.
#
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
JENKINS_JAVA_OPTIONS="$JENKINS_JAVA_OPTIONS -Djenkins.install.runSetupWizard=false"
JENKINS_JAVA_OPTIONS="$JENKINS_JAVA_OPTIONS -Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Tokyo" # タイムゾーンをJSTにする

......
(省略)
......

レシピを実行する

上記のファイルが作成できたら、
berks vendor cookbooksで必要なcookbookがcookbooks/以下にインストールされます。最後に、sudo chef-client --local-mode --runlist 'recipe[jenkins_server]'でJenkinsが起動します。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2