skillup

技術ブログ

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

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

投稿日:2017年5月11日 更新日:

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

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

公式リンクです。

http://serverspec.org/

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

インストール方法

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

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

rubyのインストール

serverspecのインストール

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

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

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

Gemfileについて調べてみた

BundlerとComposerのinstallとupdateの違い

bundle実行

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

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

ひな形の作成

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

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

テスト内容

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

SSH設定

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

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

Git+SSH鍵認証

テストの実行

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

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

spec_helper.rbに

を追加して、実行し

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

参考リンク

「Serverspec」を使ってサーバー環境を自動テストしよう

【入門】serverspecでSSH経由でリモートホストにspec流す

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

執筆者:


comment

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

関連記事

no image

シンボリックリンクについて

えー見ることは多かったんですが、自分で使うことはなかったシンボリックリンクについて。 Contents1 シンボリックとは?2 使い方 シンボリックとは? 簡単にいうとショートカットみたいなものです。 …

no image

クリックジャッキング

Contents1 クリックジャッキングとは?2 被害3 対策 クリックジャッキングとは? 悪意のあるサイトの特定上の場所をクリックさせ、誤操作をさせ、意図しない機能を実行させられる可能性があります。 …

no image

Linuxコマンドの総復習

ちょっとスポット的にLinuxコマンドの復習などを。 Contents1 コマンドの実行2 リダイレクト処理の一覧2.1 コマンド> ファイル2.2 コマンド<ファイル2.3 コマンド&g …

no image

Linuxでのパス

以前、composerを入れるときに、こちらの記事を書いたのですが、自分が使っているVPSではこの方法で入りませんでした。 調べるとみるとPATHが[crayon-633933ffc9ff497381 …

no image

nohup(sshログアウトしてもコマンドは続く)+ StickyBit(誰もで書き込み自由)

インフラ系の小ネタです Contents1 nohup2 Sticky Bit(スティッキービット) nohup sshでログインしている時に長時間かかるような処理を実行中、ログアウトするとそのコマン …

アーカイブ