2013-03-26

capistranoでパスワード認証sshを使ったrsyncを利用する

deproy.rbにこんな感じの処理を追加してみた
class Capistrano::Logger
  alias previous_log_method log
  def log(level, message, line_prefix=nil)
    message = message.gsub(/(sshpass -p) (\S+)/, "\\1 ********")
    previous_log_method level, message, line_prefix
  end
end

set :password, proc { Capistrano::CLI.password_prompt('パスワード: ') }
run "sshpass -p '#{password}' rsync -a -e 'ssh' UserName@source_host:/source_path/ /destination_path/"
Loggerのところは、そのままだとパスワードが出力されてしまうのでsshpassに渡している-pの引数は********にして伏せて表示するための処理です

0 件のコメント:

コメントを投稿