概要
Chefを使ってWebLogic Server環境の作成を自動で行う事ができるようになりました。
- Chefを使ってWebLogic Serverをサイレント・インストールしてみた
- Chefを使ってWebLogic Serverの基本ドメインを作ってみた
- Chefを使ってWebLogic Serverを起動してみた
さて、WebLogic Server環境、つまりアプリケーションサーバ環境は自動構成できるようになったのですが、データベースがなくては作成できるアプリケーションに大きな制約が発生します。
そこで、データベースとしてOracle Database 12cR1をインストールしていきます。
ところでデータベースの導入については、事前に行っておく前提作業があります。一部Chefを使ってOracle製品をインストールするための環境を準備してみたでも記載をしていますが、そこで触れていなかったSwap領域の作成を今回は行います。
OS導入時にSwap領域を適切に構成していれば特に問題はないですが、既存環境にOracle Databaseを導入しようとした時にSwap領域不測で警告が発生する事があります。
そのような時のためにChefでSwap領域を用意するRecipeを作成してみます。
Oracle Databaseのインストール前提作業
Oracle Databaseのインストール前提作業は、インストールマニュアルの以下の箇所に記載があります。
スワップ領域の前提条件
スワップ領域は、使用する環境のRAMの量に応じて以下の要件となります。
RAM | スワップ領域 |
---|---|
1GB - 2GB | RAMサイズの1.5倍 |
2GB - 16GB | RAMサイズと同じ |
16GB - | 16GB |
Swap領域の作成手順
Swap領域は以下の手順で作成します。
- Swapファイルの作成
- Swap領域の初期化
- Swap領域の有効化
1. Swapファイルの作成
ddコマンドでNULL埋めファイル(/dev/zero)をコピーして作成します。
作成したファイルには、実行属性を付与します。
$ dd if=/dev/zero of=/swapfile bs=1M count=1024
$ chmod 600 /swapfile
- of: 作成するファイル名
- bs: ブロックサイズ(byte)
- count: ブロック数
2. Swap領域の初期化
mkswapコマンドでスワップ領域を作成します。
$ mkswap -f /swapfile
3. Swap領域の有効化
swaponコマンドを使って,スワップ領域を有効にします。
$ swapon /swapfile
Chefを使ってやりたい事
前述のSwap領域を作成する一連の操作、
- Swapファイルの作成
- Swap領域の初期化
- Swap領域の有効化
これらをChefで自動実行できるようにします。
今回作成するRecipe
- 作成するSwap領域サイズは、Attributeで制御するようにし、デフォルトしては1GBのSwap領域を作成し有効化します。
Recipe. Swap領域の作成
以下の2種類のファイルを作成します。
- Recipe
- Attribute
## Swapファイルの作成 & 初期化
execute "make swapfile" do
user 'root'
group 'root'
command "dd if=/dev/zero of=#{node['env']['swap']['swapfile']} bs=#{node['env']['swap']['blocksize']} count=#{node['env']['swap']['count']} && chmod 600 #{node['env']['swap']['swapfile']} && mkswap #{node['env']['swap']['swapfile']}"
end
Swap領域の有効化
execute "activate swap" do
user 'root'
group 'root'
command "swapon -ae"
end
デフォルト値設定
default['env']['swap']['swapfile'] = '/swapfile'
default['env']['swap']['blocksize'] = '1M'
default['env']['swap']['count'] = '1024'
まとめ
Swap領域の作成は、コマンドからも容易に作成する事ができるので、Chef化しておく必要はないかもしれないと思う方もいらっしゃるかもしれません。
Chefで実行できるようにしておく事のメリットは、次の点があると考えています。
- 自動化
- 冪等性
- 属人性排除
つまり今回のようなSwap領域の作成もコマンドで簡単にできると思える方と,思えない方、誰が実施しても同じ結果がでるというところに価値があるように考えています。
-
今回のレシピ:https://github.com/shinyay/chef-oracle-env/tree/publish_20160624
- Oracle製品を導入する前提条件を満たすためのCookbookです。