J'ai une configuration Webistrano qui se déploie avec sa propre paire de clés privée/publique. Je voudrais exploiter la simplicité de la stratégie :remote_cache
, mais je ne veux pas copier la clé privée sur le serveur de déploiement.webistrano ssh-agent
Tant je ces tâches mises en place:
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'
Ce before :deploy
semble fonctionner à mi-chemin, mais j'ai quelques problèmes:
- Je dois arrêter l'agent après Deploy (et après un échec de déploiement). Y at-il un rappel que je peux accrocher la tâche
ssh:stop_agent
? - La tâche
deploy:update_code
échoue avec l'erreur Impossible de résoudre la révision de « maître » sur dépôt « [email protected]: base/mms.git »
Quelqu'un peut-il nous éclairer à ce sujet?