連載
» 2016年08月12日 05時00分 公開

実際に検証済み!OSS徹底比較(5)サーバテスト自動化【前編】:OSSのサーバテスト自動化ツール徹底検証 2016年版 〜Serverspec編〜 (3/8)

[森元敏雄,TIS]

Serverspecのプロフィール

 Serverspecは、Serverspec Operationsの宮下剛輔氏が開発した、サーバ環境の稼働状況や設定の自動テストを行う製品である。テストスクリプトの制御にはRubyのテストフレームワーク製品であるRSpecを使用している。

 2013年3月30日にVer 0.1.0としてリリースされ、2016年6月時点の最新バージョンは2016年5月20日にリリースされたVer 2.36.0である。ライセンスはMIT Licenseとなっており、Linuxに加えてWindows OSにも対応している。

 製品のコンセプトや効果については、「serverspec: 宣言的記述でサーバの状態をテスト可能な汎用性の高いテストフレームワーク」という学術論文として公開されている。さらに、作者の宮下氏が自ら執筆したServerspecの技術解説書もオライリーから出版されている。

Serverspecのインストール

 Serverspecは管理サーバ側にのみインストール作業が必要で、ノード側には前述のssh接続と特権ユーザーの利用の設定以外には特にインストールは不要である。インストールの手順は以下となる。

1.Rubyのインストール

 2016年5月現在、CentOSの標準リポジトリではVer 2.0.0がインストールされる。Rubyとしては最新のstable版ではないが、Serverspecの動作には問題はない。

$ sudo yum install -y ruby

2.ServerspecとRakeのインストール

$ sudo gem install Serverspec rake

3.Serverspec用のフォルダの作成

 Infratasterと競合するファイルが存在するため、Serverspec用の作業フォルダを作成する。テストスクリプトなども当該フォルダ以下で作成する。

$ mkdir ~/serverspec
$ cd ~/serverspec

4.Serverspecの初期設定

 テスト対象ノードのテストスクリプト用のフォルダと、サンプルテストスクリプトを対話型形式で作成する。

$ /usr/local/bin/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: tissvv096
 + spec/
 + spec/tissvv096/
 + spec/tissvv096/sample_spec.rb
 + spec/spec_helper.rb
 + Rakefile
 + .rspec

5.Serverspecのサンプルテストスクリプトの実行

 以下のコマンドで、サンプルテストスクリプトが実行される。このスクリプトではApache(httpd)の起動と自動起動の設定、および80ポートが解放されているかのテストが実行される。サンプルスクリプトは管理サーバからテスト対象のノードへの接続試験としても使用できるので、Apache(httpd)がインストールされていなくても実行しておきたい。

$ rake spec

 実行結果は以下の形で出力される。

/usr/bin/ruby -I/usr/local/share/gems/gems/rspec-core-3.4.4/lib:/usr/local/share/gems/gems/rspec-support-3.4.1/lib /usr/local/share/gems/gems/rspec-core-3.4.4/exe/rspec --pattern spec/tissvv096/\*_spec.rb
Package "httpd"
  should be installed
Service "httpd"
  should be enabled
  should be running
Port "80"
  should be listening
Finished in 0.07167 seconds (files took 0.35307 seconds to load)
4 examples, 0 failures
( date; time rake spec; date ) | tee Serverspec.log

 以上でServerspecのインストールと最初の動作確認は終了である。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。