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 で毎回インスタンスにログインして手動でプロビジョニング結果を確認していました。
ただそれでは非常に手間がかかりますし、確認する方法が残らないので、本当に正しいのか保障できません。
次のページ ではプロビジョニングが期待通りに実行されたのか自動テストする仕組みを紹介しています。
コメントの追加