やってみたいこと
- Jenkins で serverspec をキックすることは出来ているので、同じことを Altria でやってみる
- 実際にリモートホストをテストしてみる
トポロジ
以下のようなトポロジ。トリガーは Altria サーバー側にある。
Altria サーバーの準備
Altria のインストール
拙作で恐縮ですがこちらを。
serverspec のインストールと設定
sudo gem install serverspec --no-ri --no-rdoc -V
ruby 2.0.0p247 (2013-06-27) [x86_64-linux]
の場合にインストール後に rspec
を実行すると以下のようなエラーが出てしまった。
/usr/local/lib/ruby/2.0.0/rubygems/specification.rb:1990:in `raise_if_conflicts': Unable to activate rspec-2.13.0, because rspec-core-2.14.4 conflicts with rspec-core (~> 2.13.0) (Gem::LoadError)
以下のようにコンフリクトを起こしているバージョンのモジュールを一旦アンインストールした。
sudo gem uninstall -v 2.14.1 rspec sudo gem uninstall -v 2.14.4 rspec-core
また、serverspec は root ユーザーではなく altria ユーザーで実行する為に spec_helper.rb
を以下のように修正する。
altria ユーザーの作成と公開鍵の生成
altria ユーザーを作成して上で altria ユーザーで severspec を実行する。
useradd altria sudo su - altria ssh-key-gen -t rsa
リモートホストの準備
基本的には Jenkins で動かす場合と同じように設定を行う。
altria ユーザーの作成と公開鍵の登録
- altria ユーザーの作成
- altria サーバー上の altria ユーザーの公開鍵を登録する
/etc/sudoers
にaltria ALL=(ALL) NOPASSWD:ALL
を設定する
ジョブの作成
spec ファイル
テストということで、以下のような簡単な spec ファイルを用意した。
ジョブの登録
以下のようにジョブを登録した。
しばらくすると...
ジョブ一覧
上記のようにジョブの結果が一覧となって表示される。
成功
リモートホストへの serverspec が正常に終了した場合には、上記のように緑色のアイコンと共にコンソールの結果が表示される。
失敗
対して失敗の場合には赤いアイコンとコンソールの結果が表示される。