#[SoftLayerクッキングLABO] (http://qiita.com/MahoTakara/items/464da29ccf932698b753)
このレシピで出来ること
SoftLayerはアメリカの企業なので、OSを起動すると、米国中部地域のロケール設定になっている。東京データセンターでインスタンスを起動しても、やはり米国中部に設定されている。 そこで、このレシピは、Linuxのロケール設定を日本に変更するものです。
ロケール設定とは、メッセージの日本語表示、時計表示のJSTに変更など、言語や地域に関連する設定を総称として表すものです。
レシピの要約
この locale01 レシピは、以下の設定を適用します。
- リポジトリに登録された更新を適用
- 日本語パッケージをインストール
- 言語を 日本語に変更
- 時刻を JST へ変更
レシピの作成と解説
解説用のバージョンで、GitHubに登録したものが最新版です。
# Debian系とRedHat系で、対応が異なる部分を分岐します。
case node['platform']
###
### Ubuntu の設定
###
when 'ubuntu'
execute 'apt-get update' do
command 'apt-get update'
ignore_failure true
action :run
end
%w{
language-pack-ja-base
language-pack-ja
}.each do |pkgname|
package "#{pkgname}" do
action :install
end
end
execute 'update-locale LANG=ja_JP.UTF-8 LANGUAGE=ja_JP:ja' do
command 'update-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"'
ignore_failure true
action :run
end
###
### RedHat/CentOSの設定
###
when 'centos','redhat'
execute 'yum update' do
command 'yum update -y'
ignore_failure true
action :run
end
#
# RedHat/CentOS 7 からロケール設定が変わったので、ここで分岐します。
#
if node['platform_version'].to_i == 7 then
package 'man-pages-ja.noarch' do
action :install
end
execute 'localectl set-locale LANG=ja_JP.UTF-8' do
command 'localectl set-locale LANG=ja_JP.UTF-8'
action :run
end
else
# こちらが RedHat/CentOS 6 に対応する部分です。
execute 'yum -y groupinstall "Japanese Support"' do
command 'yum -y groupinstall "Japanese Support"'
ignore_failure true
action :run
end
bash "change locale" do
code <<-EOC
sed -i.org -e "s/en_US.UTF-8/ja_JP.UTF-8/g" /etc/sysconfig/i18n
EOC
end
end
end # node['platform']
#
# こちらは、Debian/Ubuntu RedHat/CentOS で共通部分です
# タイムゾーンの設定
script "Change TIMEZONE " do
interpreter "bash"
user "root"
code <<-EOL
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
EOL
end
対応するソフトレイヤー活用ガイド
テスト済みのLinuxディストリビューション
SoftLayerで選択出来るOSで確認したもののリストです。
- Ubuntu 14.04 64bit minimal install
- CentOS 7 64bit minimal install
- CentOS 6 64bit minimal install
- Debian 7 64bit minimal install (タイムゾーン設定のみ)
レシピの置き場所
最新版のレシピはGitHubにあります。
- [GitHub https://github.com/takara9/chef-repo/tree/master/site-cookbooks/locale01] (https://github.com/takara9/chef-repo/tree/master/site-cookbooks/locale01)
Chef 関連マニュアル
このレシピを作るにあたって参照したCHEFマニュアルのリンクです。
- script (https://docs.chef.io/resource_script.html )
- execute (https://docs.chef.io/resource_execute.html )
- package (https://docs.chef.io/resource_package.html )
- About the Recipe DSL (https://docs.chef.io/dsl_recipe.html#about-the-recipe-dsl )
- About Ohai (https://docs.chef.io/ohai.html )