skillup

技術ブログ

Ruby サーバー・ネットワーク

serverspecによるサーバー自動テスト

投稿日:

最近は管理しているサーバーが多いのと、構成管理ツール(Ansible)なんかをちょくちょく使ってますが、ちゃんと入っているかどうかを確認するのはそれなりに大変だったりします。

が、構成管理ツール自体もserverspecというテストツールがあるようでちょっと触ってみました。

公式リンクです。

http://serverspec.org/

前提条件ですが、Vagrantを使っていないと仮定し、別のホストを検証対象とします。検証対象も自分自身もLinuxと仮定します。

インストール方法

公式にも書いてありますが、私は下記のようにインストールしました。

※serverspecそのものよりはrubyが入っていない場合、ruby入れるほうが面倒でしょうね・・

rubyのインストール

serverspecのインストール

次にGemfileというテキストファイルを作ります。

Gemfileですが、どうやらライブラリのバージョン間の依存状態を解消するツールのようです。ここにバージョン記録しておいて、各ライブラリを記述しておくみたいな。

概念としてはphpのcomposer.jsonやJavaのpom.xmlに近いでしょうか。

http://xxxcaqui.hatenablog.com/entry/2013/02/11/013421
http://qiita.com/yudsuzuk/items/7ec595d9cb93dadcaae0

bundle実行

カレントディレクトリにGemfileがある状態でbundleというコマンドを実行してあげるとGemfileに記述されたライブラリを読み込みます。

phpでいうcomposer install ( or update)に近いです。

ひな形の作成

実際にターゲットのホストのテストができるファイルはまだできていません。必要なライブラリが読み込めた時点で下記コマンドを入力します。

ここで以下のような対話が始まります。

テスト内容

実際にテストされる内容は spec/target_host/sample_spec.rbに記述します。

SSH設定

基本的にはあとは実行するだけですが、SSH鍵認証がとおってないと実行できません。

でログインできるようにSSHの設定をしておきましょう。

Git+SSH鍵認証

テストの実行

あとは下記コマンドで実行します。

私は下記のようなエラーが出ました。

spec_helper.rbに

を追加して、実行し

というメッセージが出てとおりました。

参考リンク

http://knowledge.sakura.ad.jp/tech/2596/

http://j-caw.co.jp/blog/?p=1594

-Ruby, サーバー・ネットワーク
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Vagarant+Eclipse(Perl)での作業環境構築

現在の案件でPerlの改修があるんですが、windowsだとモジュールの依存関係でうまくコンパイルできなかったりといろいろとトラブルが起こったんで、今はやりの仮想環境でやることに。 まだ完ぺきではない …

no image

ネットワーク基礎 OSI参照モデルなど

ここ↓でネットワークの基礎についてかいてあるので定期的に勉強しようと思っています。 http://www5e.biglobe.ne.jp/aji/3min/ Contents1 スニーカーネットからリ …

no image

Addtypeについて

htmlにはPHPを埋め込むことができますが、拡張子がhtmlの場合、そのままでは実行できません。 この場合、通常では拡張子を変えなければいけないところですが、apacheを使っている場合、設定ファイ …

no image

カレントディレクトリ以下のすべてのCR+LFをLFに

windows環境からファイルをアップしていると文字コードがバラバラだったりすることが多々あります。 まあ何がめんどくさいかというと差分がチェックできない。これが最悪です。 gitのdiffコマンドの …

no image

POP3を使ったメール受信

メールの送信と比べると、プログラムで描く頻度は少ないですが、メールの受信について。 Contents1 POP3サーバー2 プログラムにてPOP3サーバーと通信3 PHPにてメールを取得する場合 PO …