ラベル capistrano の投稿を表示しています。 すべての投稿を表示
ラベル capistrano の投稿を表示しています。 すべての投稿を表示

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の引数は********にして伏せて表示するための処理です