2014年8月7日木曜日

Jenkins+serversepc で結果を見やすくする

serverspecのテスト結果を見せれば、そのインフラ構成がわかる
が、結果がそもそも見づらい環境はよくないんじゃないかと思ってちょっとでも見やすくしてみました
目grepというか可視性を上げることは大事だと思います

■serverspec側でやること
gem install colorize

をして spec ファイル内の必要な部分で

require 'colorize'

...

puts "Start server-spec ".colorize(:color => :red, :background => :blue) + `hostname`.colorize(:color => :red, :background => :blue)

...
puts 

的なことをしてあげます
colorize は String クラスのobjectに対してANSIのカラーシーケンスを追加することができるライブラリです
puts することで serverspec の実行結果に必要な情報を出力してあげます
詳細は https://github.com/fazibear/colorize をご覧ください

そして、serverspec を実行する際に以下のオプションを指定してください
SPEC_OPTS="-fd"

こうすることで実行結果が自然言語っぽくなります

■Jenkins側でやること
AnsiColor Plugin をインストールします

Jenkinsの管理 -> プラグインの管理
から「AnsiColor Plugin」を検索してインストールします

インストール後に特に設定することはないですが
AnsiColor Plugin 自体のカスタマイズをすることはできるのでやりたい方は以下を参考に実施してみてください
https://wiki.jenkins-ci.org/display/JENKINS/AnsiColor+Plugin

また、Simple Theme Pluginがインストールされているなら実行結果を黒背景にするともっと見やすくなると思います
(参考にさせていただいきました -> http://kyamada.hatenablog.com/entry/2012/10/12/191723
Simple Theme Plugin の設定方法に関してはこちらを御覧ください

emacs /path/to/userContent/sample.css
pre {
    white-space: pre-wrap;       /* css-3 */
    white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
    white-space: -pre-wrap;      /* Opera 4-6 */
    white-space: -o-pre-wrap;    /* Opera 7 */
    word-wrap: break-word;       /* Internet Explorer 5.5+ */
    margin: 0;

    background-color:black;
    color:white;
}

.CodeMirror pre {
    color:black !important;
}

下の「.CodeMirror pre」の定義はジョブの説明を設定する際に文字色を黒にする設定です
preのcssの定義に引っ張られて文字色まで白になってしまい説明文がわからないので黒に設定します

Jenkinsのcssを直接変更しても対応可能です
CSSファイルを変更後はJenkinsの再起動は不要です(反映されない場合は、編集するcssが間違っているか Simple Theme Plugin の設定がうまくいってないと思います)

■Jenkinsのジョブに対してやること
serverspec を実行するジョブの設定を開きます

ビルド環境の設定項目に「Color ANSI Console Output」という項目が追加になっているのでチェックします
セレクトボックスでは出力する色の定義を選択できます
デフォルトでいろいろと用意されているのお好みに合わせて変更してください


また serverspec側でやること で記載した通りJenkinsから serverspec を実行するときのパラメータに SPEC_OPTS="-fd" を追加してください

■結果
上記の設定を実施した上でserverspec のジョブを実行しコンソール出力を見ると以下のような感じにすることができます


ちょっと見やすくすることができたと思います
まだまだ改善の余地はあると思うのでもっと見やすくできたらいいなーと思っています
以上

0 件のコメント:

コメントを投稿