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

こんにちは!beardです!

今回は、ServerspecでHDD(EBS)の容量をServerspecでディスクサイズ(EBS)をテストする方法をご紹介します。
Serverspecにはディスクサイズを直接取得し、確認する方法がありませんので少し工夫してLinuxコマンドを入力する必要があります。

1. テストする環境
今回はディスクのサイズをテストするだけのテスト内容となっております。テスト対象のサーバをymlファイルに記述しています。
Rakefileとspec/spec_helper.rbのファイルは「Serverspecでサーバ情報をファイルに保存してテストする方法」の記事と同じです。
テスト対象のディスクサイズが7GBより大きいことをテストします。

ディレクトリ構成

server.ymlの内容

spec/common/disk_spec.rbの内容

2. 実行します。

spec/common/disk_spec.rbの解説

前述したとおりServerspecには、ResourceTypeが定義されています。
このResourceTypeに用意されているものは簡単な構文でテスト項目を設定することができますが、ディスクサイズは用意されておりません。
したがって、「describe command」でLinuxコマンドを入力し、その標準出力を受け取って正常かどうかを判断しています。
このspec/common/disk_spec.rbを細かく区切って説明すると以下の用になります。

なぜ、ディスクの容量を「何GBより大きい」という条件で判定しているか説明します。
EBSをマネジメントコンソール上で100GiBと設定しても、「df –h」コマンドで表示させたとき99GBと表示されてしまうので、ある程度曖昧にしてあります。
また、EBSの容量を増やしていったときにピッタリと比例しませんので何GB以上となるように範囲で判定するようにしております。

いかがでしたか。

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

この記事を書いた人

aws-recipe-user