Squidをバージョンアップ
Squidの新バージョンが出ていたので各サーバでバージョンアップ作業。このバージョンアップ作業からchefで実施しています。
レシピはこんな感じ。tarballをダウンロードしてきて、configure,make。
その後サービスを再起動ってことであまり特別なことはしていません。
# # Cookbook Name:: squid # Recipe:: default # # Copyright 2014, YOUR_COMPANY_NAME # # All rights reserved - Do Not Redistribute # makedir = node['squid']['makedir'] version = node['squid']['version'] major_version = version[0,3] service "squid" do supports :status => false, :restart => true, :reload => false action [ :enable, :start ] end script "make_squid" do not_if {File.exists?("#{makedir}/squid-#{version}")} interpreter "bash" user "hoge" group "fuga" cwd node['squid']['makedir'] environment "http_proxy" => "http://proxy_server:8080/" code <<-EOH wget -nc http://www.squid-cache.org/Versions/v3/#{major_version}/squid-#{version}.tar.gz tar -zxvf squid-#{version}.tar.gz cd squid-#{version} ./configure make -j8 EOH notifies :run , 'script[install_squid]' notifies :restart , 'service[squid]' end script "install_squid" do interpreter "bash" user "root" group "root" cwd node['squid']['makedir'] code <<-EOH cd squid-#{version} make install EOH action :nothing end file "#{makedir}/squid-#{version}.tar.gz" do action :delete end template "/usr/local/squid/etc/squid.conf" do owner "root" group "root" mode 0644 notifies :reload , 'service[squid]' end
makdirやversionはattribute以下へ記述。makedirがソースを展開してconfigure,makeをするところ。versionはこれからインストールするsquidのバージョン。今回なら
default['squid'][:version] = "3.5.2"
こんな感じです。