Jenkins + Capistrano + Itamae で JenkinsコンソールにAnsiColorでログを出力する
やりたかったこと
- JenkinsからCapistranoを実行し、CapistranoがリモートサーバーでItamaeを実行する時に
- DryRunやRunの結果をJenkinsのログにカラーで表示したい!というかカラーつかないと確認辛いじゃん。
- で、JenkinsからCap + Itamaeを実行させてサーバーにログインして実行する文化を撲滅したい
やり方
Capistranoの設定
- 3.5.0以上を使用している前提
- Airbrusshの
:format_options
でcolor:
をtrue
に指定。(:auto
だと消えてしまうので注意 )
set :format_options, banner: 'Capistrano start.', color: true, command_output: true, truncate: false, task_prefix: '---' ,log_file: "#{ENV['LOG_PATH']}/#{fetch(:start_datetime)}_capistrano.log"
Itamaeの設定
- Capistrano側で
set :pty, true
を設定しておく
Jenkinsの設定
- AnsiColor Plugin - Jenkins - Jenkins Wikiのインストール
- 対象のジョブの設定でAnsiColorを有効化
こんな感じになります
Capistrano部分のカラー
Itamae部分のカラー