Serverspec を導入してみる

みなさんこんにちは。サーバの構築業務を担当している川合です。
今回は普段行っている構築業務についての記事となります。

以前から構築後のサーバ環境のテストを自動化していきたいと考えていました。
今回は取っ掛かりとして、Serverspecをインストールする方法について解説したいと思います。

Serverspecを導入することで以前までの手作業でのチェックとは違い
作業時間の短縮・確認漏れなどのミスを無くすことができ作業が大幅に改善されると期待しています。

概要

今回はCentOSにServercpecを導入して、環境を用意するまでの手順を解説したいと思います。
利用する環境は、CentOS 6.9 64bit と CentOS 7.4 64bit です。

OSのバージョンによって手順が異なりますのでバージョン別の解説も加えていきます。

Serverspecとは

サーバ向けに用意されたテストフレームワークです。
Rubyで実装されておりRSpecというテストフレームワークの機能を活用して実装されています。
テストの実行には、specというファイルを用意してテストする内容をファイルの中に
記述し、RakeというRubyで実装された自動化ツールを使いテストを実行することができます。

設定方法

Serverspecとスクリプトの実行に必要なRakeは、Rubyのパッケージとして提供されています。
OS標準のRubyは古く特にCentOS6系はRuby1.8系と古いため少し特殊な手順が必要です。
CentOS7系は、特殊な手順が必要なく導入できるのでCentOS7系で用意することをおすすめします。

CentOS7系の場合

まず、rubyのインストールを行います。

yum install ruby rubygems

これでRubyの導入が完了しましたので、ServerspecとRakeをインストールしていきます。

Serverspec
gem install serverspec
Rake
gem install rake

これでServerspecとRakeのインストールも完了です。

CentOS6系の場合

導入に必要なものは、CentOS7系と変わりません。
ただ、Rubyのバージョンが古いためインストールの際にバージョンを指定する必要があります。
※Rubyのインストール手順は同じなので割愛します

ServerspecとRakeをインストールしようとするとエラーになります。

Serverspec
ERROR:  Error installing serverspec:
net-ssh requires Ruby version >= 2.0.
Rake
rake requires Ruby version >= 2.0.0.

net-sshとrakeがRubyのバージョン2系以上が必要と警告が出ます。
バージョンを指定せずにコマンドを実行すると、最新のバージョンをインストールしようとします。
その為、インストールしているRubyに適用するバージョンを指定する必要があります。

gem install net-ssh --version "=2.9.4"
gem install rake --version "=10.5.0"

これで適用するバージョンをインストールしたので、Serverspecを続いてインストールします。

gem install serverspec

これでServerspecの導入は完了です。

まとめ

今回は、Serverspecを実行できる環境を用意するところまでの解説となりました。

rbenvを利用すれば、OS標準のRubyよりも新しいバージョンをインストールすることができますが
後々の管理のしやすさを鑑みてOS標準で作業を実施しています。

実際にテストファイルを用意してチェックを自動化する内容については、また情報が整理でき次第解説できればと思います。

返信を残す

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

CAPTCHA