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

vimの設定に関して

今の開発ではほとんどeclipseを使っていますが、プログラミングをやり始めてから2年ぐらいはずっとgvim(vimのGUI版)でした。 別にこだわりがあったわけではないんですけどね。 最初にならった …

no image

SQLインジェクション

セキュリティ関係の知識がぬるいのでちょっとお勉強。 知っていることもあるが復習もかねて勉強を。 Contents1 SQLインジェクションとは?2 被害3 対策4 参考サイト SQLインジェクションと …

no image

シェル基礎2

シェルコマンド使い始めて数年たちますが、いまだに知らないことはおおいですし、早く知っとけばよかった的なこともたくさんあります。 そんな小ネタ集を alias よく使うコマンドを別名で登録することができ …

no image

セッションとクッキーについて

セッションとクッキーについての違いを整理しておこうと思います。 Contents1 そもそものHTTPプロトコルについて2 ステートフルな状態を実現するために2.1 方法1 クライアント側で情報を保持 …

no image

PHPのheroku(ヘロク)へのデプロイ

有名なPaasのサービスであるherokuをちょっといじったのでその時のメモなどを。 Contents1 アカウント開設2 Heroku | Cloud Application Platform3 デ …