独自の秘密鍵と公開鍵のペアでデプロイする Webistrano セットアップがあります。戦略の単純さを利用し:remote_cache
たいのですが、秘密鍵を展開サーバーにコピーしたくありません。
長い間、これらのタスクを設定しました:
namespace :ssh do
task :start_agent do
ssh_options[:forward_agent] = true
result = `ssh-agent -t 600`
# Extract env variables
%w(SSH_AUTH_SOCK SSH_AGENT_PID).each do |key|
if result =~ /#{key}=(.*?);/
ENV[key] = $1
end
end
cmd = "ssh-add #{ssh_keys}"
result = `cmd`
end
task :stop_agent do
# Kill the agent started previously
`ssh_agent -k $SSH_AGENT_PID`
end
end
before 'deploy', 'ssh:start_agent'
これbefore :deploy
は途中でうまくいくようですが、問題はほとんどありません。
- デプロイ後 (およびデプロイの失敗後) にエージェントを停止する必要があります。
ssh:stop_agent
タスクをフックできるコールバックはありますか? - リポジトリ 'git@git.eenet.ee:base/mms.git' の 'master' のリビジョンを解決できませんというエラー
deploy:update_code
でタスクが失敗します
誰でもこれに光を当てることができますか?