Linux環境でServerspecを使ってみる part2

今回から、Serverspecの環境を用意していきましょう。

こちらの記事の続きです。
Linux環境でServerspecを使ってみる part1 - ressyのナレッジ的なブログ

はじめに

bundlerを使用してServerspecでテストできる環境を構築していきましょう。
bundlerとは、Rubyのライブラリ管理ができるツールですが、詳細な説明は省略します。
こちらの記事がわかりやすいかなと思います。
あらためてBundlerに関して理解する - Qiita

今回は、こちらの記事で取り上げている勉強環境をベースに行います。
こんなシステム構成で色々勉強していく - ressyのナレッジ的なブログ
ServerspecはサーバMGS01にインストールし、MGS01WEB01DBS01のテストを行えるようにします。

インストール前の準備作業

リモートでテストする場合、接続先サーバにて以下の要件を満たしておく必要があります。
事前に設定しておきましょう。

  1. 公開鍵認証でsshログインできること
  2. ログインユーザがsudo権限を持っていること

※ 詳しくは次回以降取り上げますが、MGS01(=Serverspecインストール先)も試験対象とする場合、方式次第では自分自身に公開鍵認証でログインできるようにしておく必要があるみたいです。

Serverspecのインストール

まずはbundlerをインストールしましょう。

$ sudo gem install bundler

bundlerをインストールしたら、作業用のディレクトリを作成し、そこでGemfileを作成しましょう。
ここでは、Serverspecというディレクトリを作成します。

$ mkdir <任意のディレクトリ>/Serverspec
$ cd <任意のディレクトリ>/Serverspec

作業用ディレクトリ内でGemfileの雛形を作成します。
Gemfileとは、gemでインストールしたいパッケージの記述するファイルです。

$ bundle init
$ ls
Gemfile

Gemfileをエディタで編集し、以下のようにしてください。 具体的にはgemrakeserverspechighlineの3つをインストールします。

  • rakeRuby用のビルドツール。C言語でいうとmakeみたいなもの。
  • serverspec:Serverspec本体。
  • highlineCLI入出力を支援するパッケージ。テスト対象のサーバのsudoパスワードを入力するために使用する。

ちなみにGemfileの雛形ではrailsコメントアウトされた状態で作成されますが、今回は使用しないのでコメントアウトのままにしています。

$ cat Gemfile
# frozen_string_literal: true
source "https://rubygems.org"

# gem "rails"
gem "rake"
gem "serverspec"
gem "highline"

Gemfileに記載したパッケージをインストールします。

$ bundle install

実行後、パッケージがインストールされたかを確認します。
以下は、一例です。
rakeserverspechighlineなどが確認できればOKです。

$ bundle exec gem list

*** LOCAL GEMS ***

bundler (1.13.6)
diff-lcs (1.2.5)
highline (1.7.8)
multi_json (1.12.1)
net-scp (1.2.1)
net-ssh (3.2.0)
net-telnet (0.1.1)
rake (12.0.0)
rspec (3.5.0)
rspec-core (3.5.4)
rspec-expectations (3.5.0)
rspec-its (1.2.0)
rspec-mocks (3.5.0)
rspec-support (3.5.0)
serverspec (2.37.2)
sfl (2.3)
specinfra (2.66.2)

これでインストールは完了です。
次回は、Serverspecでテストするための準備作業を取り上げます。

参考

この記事は、以下を参考にしています。

Serverspec - Home

「Serverspec」を使ってサーバー環境を自動テストしよう - さくらのナレッジ