ページ ツリー
メタデータの末尾にスキップ
メタデータの先頭に移動

jenkins Cookbook を Attribute に対応させる

前回作成した Recipe

前回は Jenkins をインストールする Cookbook を以下のように作成しました。
これを、Attribute に対応させていきます。 

jenkins/recipes/default.rb
#
# Cookbook Name:: jeknins
# Recipe:: default
#

rpm = "jenkins-1.568-1.1.noarch.rpm"

remote_file "#{Chef::Config[:file_cache_path]}/#{rpm}" do
  source "http://pkg.jenkins-ci.org/redhat/#{rpm}"
end

package "#{Chef::Config[:file_cache_path]}/#{rpm}"

ruby_block 'set JENKINS_USER' do
  block do
    file = Chef::Util::FileEdit.new('/etc/sysconfig/jenkins')
    file.search_file_replace_line(/^JENKINS_USER="jenkins"/, 'JENKINS_USER="kitchen"')
    file.write_file
  end
end

ruby_block 'change jenkins directories owner' do
  block do
    FileUtils.chown_R 'kitchen', 'kitchen', ['/var/lib/jenkins', '/var/log/jenkins', '/var/cache/jenkins']
  end
end

service 'jenkins' do
  action [:start, :enable]
end

 

[演習] Attribute に対応させよう

前回作成した Cookbook を Attribute に対応させてみましょう。 

Attribute にすべきものは Cookbook の設計によりけりですが、今回は次の項目を Attribute にしてみてください。 

 

Jenkins のバージョン

  • 特定のバージョンの Jenkins をインストールしたくなったときに、Recipe を直したくない

  • 同じ Recipe で複数のバージョンの Jenkins をインストールできるようにしておきたい 
     

Jenkins の rpm ファイルの URL

  • 将来的に rpm ファイルの URL が変更されたときに、Recipe を直したくない

 

Jenkins の実行ユーザー

  • プロビジョン先のサーバーによっては実行ユーザーを変えないといけないかもしれない

 

Kitchen で確認

Attribute への対応が完了したら、.kitchen.yml を編集し、Kitchen インスタンスで動作チェックをしてみましょう。

 

自動テストに対応する

いままでは kitchen login で毎回インスタンスにログインして手動でプロビジョニング結果を確認していました。
ただそれでは非常に手間がかかりますし、確認する方法が残らないので、本当に正しいのか保障できません。

次のページ ではプロビジョニングが期待通りに実行されたのか自動テストする仕組みを紹介しています。

 

 

  • ラベルがありません
コメントを書く…