おさらい
OSのタイプやバージョン番号を取得するには、
- node[:platform_family]
- node[:platform_version]
などの値を参照すればよいです。
これらの情報はohaiが収集してくれたものです。
まず適当なレシピを作ってこれを確かめてみるとよいでしょう。
バージョン情報を取得するレシピ
default.rb
log ":platform_family = " + node[:platform_family]
log ":platform_version = " + node[:platform_version]
log ":platform_version.to_i = " + node[:platform_version].to_i.to_s
実行結果
CentOS 6.6
* log[:platform_family = rhel] action write
* log[:platform_version = 6.6] action write
* log[:platform_version.to_i = 6] action write
CentOS 7.1
* log[:platform_family = rhel] action write
* log[:platform_version = 7.1.1503] action write
* log[:platform_version.to_i = 7] action write
CentOS7からバージョン番号にパラダイム変化が起きているのが要注意点です。(1503はUbuntu的な年月のアレか?)
メジャーバージョンで分岐させる方法
バージョン番号をto_i
で整数に変換すると、分岐しやすくなります。
default.rb
if platform_family?('rhel') && node['platform_version'].to_i == 7 then
log "this is rhel 7"
elsif platform_family?('rhel') && node['platform_version'].to_i == 6 then
log "this is rhel 6"
end
これでうまく行きました!