Serverspecの概要
Serverspecは、サーバの構成を自動でテストするオープンソースのテストフレームワークです。サーバへのミドルウェアのインストールや設定ファイルの適応は、Chefや、Ansibleと言ったツールによって自動化することが出来るようになった一方、それらのツールによってインストールされたソフトウェアが正しく設定され、サーバ上で設定どおりに稼働しているかといった稼働確認は手動で行なう必要がありました。Serverspecは、いままで手動で行なう必要があったサーバ構成の確認(テスト)をスクリプトにより自動化することができるツールです。
Serverspecの主な特徴
Serverspecは、Rubyで実装されたサーバの構成をテストするためのソフトウェアで、日本人中心としたコミュニティによって開発されています。Serverspec自体のインストールは、Rubyのパッケージ管理ツールである、Rubygemを通じて行います。また、ServerspecはRubyのテストフレームワークであるRSpecを元に作られていて、テストの自動化はrakeパッケージを使って行われます。
テストケースはrubyスクリプトとして記述する必要がありますが、テストの雛形となるspecファイルやrake用の設定ファイルであるRakefileは自動生成する機能が組み込まれているため、Rubyに関する知識がなくてもServerspecを利用することが出来るようになっています。もちろん、Rubyに関する知識があればより柔軟なテストケースを作成することが可能です。Serverspecは、サーバにエージェントソフトウェアをインストールする必要はありません。ローカルでコマンドを実行し、WinRM、SSH、Docker API などを介してサーバの状態をテストできます。
Serverspecと近い機能を持ったソフトウェアとしては、「Infrataster」があります。InfratasterはServerspecではテストが難しい機能を補完してテストできるツールとして利用されています。こちらも日本人を主体としたコミュニティによって開発されており、言語はRubyを利用しているため、Serverspecに近い形で利用することが可能です。
Serverspecの動作環境
Serverspecは以下のOSをサポートしています。
• AIX
• Arch Linux
• Darwin(Mac OS X)
• Debian
• Fedora/Red Hat/CentOS
• FreeBSD
• Gentoo Linux
• NixOS
• OpenBSD
• openSUSE
• Plamo Linux
• SmartOS
• Solaris
• SUSE
• Ubuntu
• Windows
Linux,Unix系のOSに加え、MacOSXやWindowsもサポートしています。ただし、特定の機能(リソース)に関してのテスト機能はサポートされていないOSもあります。詳しくは、下記Serverspecのドキュメントにある、ResourceTypeに関してのドキュメントを参照ください。
http://serverspec.org/resource_types.html
Serverspecのライセンス
ServerspecはMIT Licenseで提供されているソフトウェアです。ユーザーはそのソフトウェアの使用や頒布、修正、派生版の頒布をすることに制限を受けません。
参考情報
Serverspec公式サイト
Serverspec GitHub
Serverspecのサポート
NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。