In Edicy, we're using capistrano-multistage gem to make software updates to testing, staging and production environments. Kinda standard. SSH Authentication to all these environments is being done with ssh keys and this way it is quite easy to mistakenly type "cap production deploy" when you actually meant "cap staging deploy". So we added few extra lines to our production environment file to ask for a confirmation before doing anything in live app servers.
In config/deploy/production.rb file we haveset(:confirmed) do
puts <<-WARN
========================================================================
WARNING: You're about to perform actions on production server(s)
Please confirm that all your intentions are kind and friendly
========================================================================
WARN
answer = Capistrano::CLI.ui.ask " Are you sure you want to continue? (Y) "
if answer == 'Y' then true else false end
end
after 'multistage:ensure' do
unless confirmed
puts "\nDeploy cancelled!"
exit
end
end