Serverspec 入門
今回は Mac OS X 上に Serverspec の環境を構築して遊んでみようと思います。
Serverspec ってなに?
Serverspec は Ruby で実装を行うサーバ向けのテストフレームワークです。
Ruby の実行環境さえあればよいので Linux / Mac / Windows とどの環境でも実行することが可能です。
あらかじめ用意したテスト用のスクリプトを実行して、目的の要件を満たすようにサーバが構築されているかをチェックするのが主な利用用途になります。
Serverspec の環境構築
必要な gem をインストールしましょう。
$ sudo gem install serverspec $ sudo gem install highline
これで準備完了です (簡単ですね)。
テンプレートの作成
Serverspec ではテンプレートを作成してくれるという便利な機能があるので今回はそちらを利用させていただきます。
(以下の例では ponteru.dev001 というサーバに対してテストを行うためのテンプレートを作成しています。)
$ serverspec-init Select OS type: 1) UN*X 2) Windows Select number: 1 Select a backend type: 1) SSH 2) Exec (local) Select number: 1 Vagrant instance y/n: n Input target host name: ponteru.dev001 + spec/ + spec/ponteru.dev001/ + spec/ponteru.dev001/sample_spec.rb + spec/spec_helper.rb + Rakefile + .rspec
これで準備が整ったので、実際にテストをしてみましょう。
テストしてみる
今回は『指定したサーバの22番ポートが Listen になっているか』の確認をするテストをしてみようと思います。
テストの作成
本家の Web サイトに書かれているサンプルをそのまま使用させていただきました。
require 'spec_helper' describe port(22) do it { should be_listening } end
テストの実行
テストの実行は rake spec で行うことができます。
(この際 ASK_SUDO_PASSWORD=1 にしておかないとパスワードを聞いてくれなくてテストに失敗するので注意)
$ rake spec ASK_SUDO_PASSWORD=1 Enter sudo password: Port "22" should be listening Finished in 0.42689 seconds (files took 3.77 seconds to load) 1 example, 0 failures
まとめ
Serverspec は Chef や Ansible などの構成管理ツールと連携して使うことで真価を発揮すると思います。 今回はその第一歩として環境構築の方法・簡単な使い方を紹介してみました。