$ fab deploy
... oups errors on the website even if tested on stagging ...
$ fab getdebuglog
$ fab rollback
... fix test ...
$ fab deploy
fab is fabric, a very very nice deployment tool in Python: http://www.fabfile.org $ fab deploy
... oups errors on the website even if tested on stagging ...
$ fab getdebuglog
$ fab rollback
... fix test ...
$ fab deploy
fab is fabric, a very very nice deployment tool in Python: http://www.fabfile.orgBut I agree with the sentiment - think very hard before doing this, and don't make it a habit.
http://en.wikipedia.org/wiki/Expect
Slightly weird syntax, but learnable in a few hours. You are likely to already have it on your machines.
Having the ability to immediately stage an environment to reproduce an error without configuration issues would really take a lot of treachery out of trying to evolve larger systems.
In fact, an expect script [can be] nicely self-documenting, because somebody can look at it and see "oh these are the steps to deploy X" because the scripts basically read as "at the foo prompt, enter bar" over and over again, with some branching to handle varying responses (missing prereq, error messages).
The "ultimate" in building environments would probably have to be something more comprehensive and declarative like bcfg (http://trac.mcs.anl.gov/projects/bcfg2) which I have seen in action and it works but is very XML-heavy.