Serverspecでサーバ情報をファイルに保存してテストする方法

Pocket

こんにちは!beardです!

Serverspecでファイルにテスト対象のサーバ情報を記述しておきたい場合、ちょっとした工夫が必要でした。
今回は、テストするときにファイルを指定してServerspecを実行する方法をご紹介します。

Serverspecのインストールと基本的な操作については、過去の記事『Amazon OSS編~Serverspecパート①~』をご覧ください。

1. 今回テストする環境
例としてServerspecから2つのサーバのグループをテストします。
グループAに2台のサーバ、グループBに1台のサーバとしています。
今回はファイルを分けてサーバ情報を記述することを目的としているので、テスト内容は時刻が日本時間になっていること確認するだけです。
テスト対象のサーバをグループごとにymlファイルにまとめます。
テスト項目のディレクトリ構成は『Serverspecで複数のサーバを一括テストする方法』の記事と同じです。

ディレクトリ構成

/usr/local/serverspec/groupA.ymlの内容

/usr/local/serverspec/groupB.ymlの内容

2. これだけではファイルを読み込んでくれませんので、Rakefileとspec/spec_helper.rbを以下のように変更します。
Rakefileの内容

spec/spec_helper.rbの内容

3. この状態で「rake spec」コマンドを実行するとテスト対象のサーバを記述したファイルを指定してテストを行うことができます。
まずgroupA.ymlをテストしてみます。

4. 次はgroupB.ymlをテストしてみます。

いかがでしたか?
サーバのグループごとにファイルを分けることできっと管理しやすくなるはずです!

次回もお楽しみに!!