イフブロ

イフブロ

インフラエンジニアのブログ

Jenkins + Capistrano + Itamae で JenkinsコンソールにAnsiColorでログを出力する

やりたかったこと

  • JenkinsからCapistranoを実行し、CapistranoがリモートサーバーでItamaeを実行する時に
  • DryRunやRunの結果をJenkinsのログにカラーで表示したい!というかカラーつかないと確認辛いじゃん。
  • で、JenkinsからCap + Itamaeを実行させてサーバーにログインして実行する文化を撲滅したい

やり方

Capistranoの設定

  • 3.5.0以上を使用している前提
  • Airbrusshの :format_optionscolor: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の設定

f:id:umisora2:20170803141443p:plain

こんな感じになります

Capistrano部分のカラー f:id:umisora2:20170803141951p:plain

Itamae部分のカラー f:id:umisora2:20170803142106p:plain