インフラの構成管理で「Serverspec」を利用している企業は多いと思いますが、更に@hiracy様の「serverspec-runner」をインストールして「Serverspec」のテスト結果をレポートとして出力することができるようになります。
今回は「Serverspec」と「serverspec-runner」のインストールと基本設定について解説します。
serverspec-runnerとは?
私はこの「serverspec-runner」は構成管理に最適だと思っていますが、なかなか情報がありません。
serverspec-runnerは@hiracy様が開発したツールです。
serverspec-runnerを使って複数のホストのテストレポートを作る
https://qiita.com/hiracy/items/1ebc7b82f1a6ffa69ed0
serverspec-runnerの特徴
serverspec-runnerの特徴です。
- 簡単に導入できる
- 構築後の設定確認・動作テストが複数台でできる
- テスト結果がレポート形式で出力される
Serverspecのインストール手順
今回インストールする環境です。
OSは「CentOS 7.4」です。
[test@cent07 example]$ cat /etc/redhat-release |
Ruby環境があるか確認します。
[test@cent07 ~]$ ruby -v |
「Serverspec」と「serverspec-runner」は「gem」からインストールします。
gem(ジェム)とは
gem(ジェム)とは Ruby のパッケージ管理ツールです。
gemはジェムと呼びます。(少なくとも私の周りでは・・)
例えば、Ruby でツールやライブラリが開発され公開されている場合、gem コマンドでインストールしたりアップデートすることができます。
RubyGems
現在の gem のバージョンチェック
「gem -v」コマンドでバージョンをチェックできます。
[test@cent07 ~]$ gem -v |
gemで serverspec をインストール
rakeをインストールします。
[test@cent07 ~]$ sudo gem install rake |
serverspec をインストールします。
[test@cent07 ~]$ sudo gem install serverspec |
gem で serverspec-runner をインストール
serverspec-runner をインストールします。
[test@cent07 ~]$ sudo gem install serverspec-runner |
serverspec-runner の実行
インストールが終わったら、デフォルトの状態で「serverspec-runner」を実行してみます。
[test@cent07 serverspec]$ serverspec-runner ### start [example@anyhost-01] (127.0.0.1) serverspec… ### User “root” Group “root” Filesystem Host “www.google.com” Command “dmesg | grep “FAIL\|Fail\|fail\|ERROR\|Error\|error”” Failures: 1) Command “dmesg | grep “FAIL\|Fail\|fail\|ERROR\|Error\|error”” exit_status should not eq 0 expected: value != 0 (compared using ==) # ./spec/example/default.rb:25:in `block (2 levels) in <top (required)>’ Finished in 1.81 seconds (files took 1.86 seconds to load) Failed examples: rspec ./spec/example/default.rb:25 # Command “dmesg | grep “FAIL\|Fail\|fail\|ERROR\|Error\|error”” exit _status should not eq 0 +————————————————————————–+ |
複数のホストに対して serverspec-runner を実施する
複数のホストに対して serverspec-runner で確認テストをする場合は、以下のように yml ファイルを設定します。
[test@cent07 serverspec]$ pwd |
serverspec-runner での ssh のオプションを設定してパスワードプロンプトを表示させないようにする
複数のホストに対して serverspec-runner でテストをする際に1つ1つパスワードを入力するのは面倒です。
その場合は、「ssh_options_default.yml」ファイルに「パスワード」や「パスフレーズ(鍵認証の場合)」を記載することができます。
[test@cent07 serverspec]$ pwd |
複数ホストに対してパスワードプロンプトなしでの serverspec-runner の実行
[test@cent07 serverspec]$ serverspec-runner ### start [example@centos7] (192.168.1.12) serverspec… ### User “root” Group “root” Filesystem Host “www.google.com” Finished in 5.38 seconds (files took 1.67 seconds to load) /usr/bin/ruby -I/usr/local/share/gems/gems/rspec-core-3.7.1/lib:/usr/local/share/gems/gems/rspec-support-3.7.1/lib /usr/local/share/gems/gems/rspec-core-3.7.1/exe/rspec ./spec/example/default.rb ### start [example@cent06] (192.168.1.11) serverspec… ### User “root” Group “root” Filesystem Host “www.google.com” Finished in 5.38 seconds (files took 1.67 seconds to load) /usr/bin/ruby -I/usr/local/share/gems/gems/rspec-core-3.7.1/lib:/usr/local/share/gems/gems/rspec-support-3.7.1/lib /usr/local/share/gems/gems/rspec-core-3.7.1/exe/rspec ./spec/example/default.rb ### start [example@test07] (192.168.1.10) serverspec… ### User “root” Group “root” Filesystem Host “www.google.com” Finished in 5.36 seconds (files took 1.68 seconds to load) +————————————————+ |
実際はこんな感じです。
Teraterm の画面ですが、非常に見やすいですよね。
コメント