Serverspecでディスクサイズをテストする方法

spec/common/disk_spec.rbの解説

前述したとおりServerspecには、ResourceTypeが定義されています。

このResourceTypeに用意されているものは簡単な構文でテスト項目を設定することができますが、ディスクサイズは用意されておりません。

したがって、「describe command」でLinuxコマンドを入力し、その標準出力を受け取って正常かどうかを判断しています。

このspec/common/disk_spec.rbを細かく区切って説明すると以下の用になります。

1size=`df -k |grep /dev/xv | awk '{printf (\"%4.0f\", $2/1024/1024)}'`←ディスクサイズを表示させ/dev/xvのデバイスの合計容量をGB単位で取りだしてsize変数に格納します。(\はエスケープシーケンス)2test $size -gt 7 ←size変数がtestコマンドで7以上かどうか判別します。3echo $? ←testコマンドの結果を表示させます。真なら0、偽なら1が出力されます。

なぜ、ディスクの容量を「何GBより大きい」という条件で判定しているか説明します。

EBSをマネジメントコンソール上で100GiBと設定しても、「df –h」コマンドで表示させたとき99GBと表示されてしまうので、ある程度曖昧にしてあります。

また、EBSの容量を増やしていったときにピッタリと比例しませんので何GB以上となるように範囲で判定するようにしております。

いかがでしたか。

Linuxコマンドとその結果を判定することで、ハードウェア性能をServerspecでテストしてみました。

次回もお楽しみに!!

この記事を書いた人

aws-recipe-user