WindowsでのServerspec

マシン構成をテスト可能にするServerspecですが、ありがたいことにWindowsでも動作します。

ここでは、インストールの手順と、使用方法についてまとめます。

インストール

Rubyのインストール(テスト実行マシンのみ)

ServerspecはRubyのインフラの上で動作するので、Rubyのインストールが必要です。ただし、テスト対象のマシンでインストールする必要性はありません。テストを実行するマシンでだけインストールが必要です。

WindowsにRubyをインストールする方法は何種類もありますが、RubyInstallerを使うのが無難です。

Rubyのダウンロード方法、セットアップについては以下のRubyInstallerのサイトで確認してください。後必ずDevKitのインストールもしておきましょう。

http://rubyinstaller.org/

今後の作業は、Ruby 2.1.5 AMD64版、Devkitがインストール済で有ることを前提に進めます。

gemでのserverspec, rake, winrmのインストール(テスト実行マシンのみ)

Serverspecは実行にRakeを必要としているので、Rakeのインストールが必要です。また、リモートのマシンを操作するためにWinRMを必要とするので、その為のモジュールもインストールします。

ここだけではないですが、gemによるインストールでは管理者権限のついたコンソールで実行する方が無難です。

WinRMの設定(すべてのマシン)

管理者権限付きでPowerShellのコンソールを開いて、以下の内容のスクリプトファイルを作って実行するか、一行ずつ実行させます。

以上で基本的なセットアップは終わりです。

serverspecの使い方

Serverspecを実行するディレクトリでserversepc-initコマンドで初期化を以下の要領で行います。

上はリモートでlocalhostのテストを行う設定です。

作成されるディレクトリの構造です、specディレクトリ以下がテスト記述になります。specフォルダ以下にホスト毎のディレクトリが作られ、そのホスト毎のディレクトリにある*_sepc.rbというテスト記述がRakeによって実行される仕組みです。またその時、spec/spec_helper.rbが共通設定と使用され、このファイルのなかでリモートログインに必要なユーザー名、パスワードの設定を行います。

spec/spec_helper.rbの設定

自動的に作成されるファイルは以下のようになっています。

これにユーザー名、パスワードの記述を加えますが、もう一つOS設定の記述を加えます。

5行目が追加で記述した部分です。

テスト記述

テスト記述は、specディレクトリの下のホスト名毎のディレクトリに下に、*_spec.rbという決まりで作成します。また、自動的にsample_spec.rbというファイルが作成されますが、内容的にはWindowsでは動かないですし、意味が無いので削除してしまいましょう。

Serverspecのコマンドで、Windowsに対応しているものは以下にまとめられています。

serverspec/WINDOWS_SUPPORT.md at master · serverspec/serverspec.

以下は私の作ったサンプル。

コマンド実行結果の確認は私のサンプルのやり方でやらないとエラーになるので注意してください。

テスト実行

テストのディレクトリで、rake specで実行します。

実行します。わざとプログラムのバージョンを誤った物にして、テストを失敗させています。

以下はすべて成功した場合。

まとめ

そんなに難しくも無く、大変シンプルで使いやすいと思います。今回触れていませんが、IIS関連での確認できることも多いです。

Powershell DSCやChef, Puppetなどと組み合わせて、Windowsシステム構築のアジリティを上げていっていただけたらと思います。

そこまで行かなくても、インストールされたソフトウェアの構成確認等Sier的な使い道でも効率を上げられると思いますので。

参考書籍

Serverspec
Serverspec 宮下 剛輔

オライリージャパン 2015-01-17
売り上げランキング : 28444

Amazonで詳しく見る by G-Tools

One thought on “WindowsでのServerspec”

コメントを残す