Serverspecで複数のサーバを一括テストする方法

Pocket

こんにちは!beardです!

Serverspecでは、複数のサーバを一括テストするために便利な方法があります。今回は、テスト項目ごとにコードを整理する方法も合わせてご紹介します。

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

1. 今回テストする環境
Serverspecがインストールされたサーバから以下の二つのサーバをテストします。
サーバAにhttpdをインストールして稼動させ、OSの時刻設定をJSTにしています。
サーバBはその状態でAMIを取得したものからEC2インスタンスを立ち上げたので設定はまったく同じになります。

サーバAのIPアドレス:54.64.15.205
サーバBのIPアドレス:54.64.126.211

2. Serverspecがインストールされたサーバの/usr/local/serverspecに移動してserverspec-initをします。
その後テスト項目ごとにディレクトリを分けて配置します。
ディレクトリとファイル構成を以下のように変更します。

それぞれのファイルの中身は以下のようになっています。

3. サーバを複数まとめてテストするにはRakefileを編集します。
注意するべきはhostsの部分だけです。後はコピペで大丈夫です。

4. spec_helper.rbも以下のように変更します。
ここではuser名だけ気をつけましょう。

5. ではテストを実行します。

6. 複数のサーバがまとめてテストされました!

いかがでしたか。
今回は同じ構成のサーバが2台ですが、もっとサーバが増えたり、テスト項目をサーバごとに変えたりといった運用も可能です。

次回もお楽しみに!!