Linux環境でServerspecを使ってみる part2
今回から、Serverspecの環境を用意していきましょう。
こちらの記事の続きです。
Linux環境でServerspecを使ってみる part1 - ressyのナレッジ的なブログ
はじめに
bundlerを使用してServerspecでテストできる環境を構築していきましょう。
bundlerとは、Rubyのライブラリ管理ができるツールですが、詳細な説明は省略します。
こちらの記事がわかりやすいかなと思います。
あらためてBundlerに関して理解する - Qiita
今回は、こちらの記事で取り上げている勉強環境をベースに行います。
こんなシステム構成で色々勉強していく - ressyのナレッジ的なブログ
ServerspecはサーバMGS01
にインストールし、MGS01
、WEB01
、DBS01
のテストを行えるようにします。
インストール前の準備作業
リモートでテストする場合、接続先サーバにて以下の要件を満たしておく必要があります。
事前に設定しておきましょう。
- 公開鍵認証でsshログインできること
- ログインユーザがsudo権限を持っていること
※ 詳しくは次回以降取り上げますが、MGS01
(=Serverspecインストール先)も試験対象とする場合、方式次第では自分自身に公開鍵認証でログインできるようにしておく必要があるみたいです。
Serverspecのインストール
まずはbundlerをインストールしましょう。
$ sudo gem install bundler
bundlerをインストールしたら、作業用のディレクトリを作成し、そこでGemfileを作成しましょう。
ここでは、Serverspec
というディレクトリを作成します。
$ mkdir <任意のディレクトリ>/Serverspec $ cd <任意のディレクトリ>/Serverspec
作業用ディレクトリ内でGemfileの雛形を作成します。
Gemfileとは、gemでインストールしたいパッケージの記述するファイルです。
$ bundle init
$ ls
Gemfile
Gemfileをエディタで編集し、以下のようにしてください。
具体的にはgem
でrake
、serverspec
、highline
の3つをインストールします。
rake
:Ruby用のビルドツール。C言語でいうとmakeみたいなもの。serverspec
:Serverspec本体。highline
:CLI入出力を支援するパッケージ。テスト対象のサーバのsudoパスワードを入力するために使用する。
ちなみにGemfileの雛形ではrails
がコメントアウトされた状態で作成されますが、今回は使用しないのでコメントアウトのままにしています。
$ cat Gemfile # frozen_string_literal: true source "https://rubygems.org" # gem "rails" gem "rake" gem "serverspec" gem "highline"
Gemfileに記載したパッケージをインストールします。
$ bundle install
実行後、パッケージがインストールされたかを確認します。
以下は、一例です。
rake
、serverspec
、highline
などが確認できれば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」を使ってサーバー環境を自動テストしよう - さくらのナレッジ