XP is just a number | |
PerlMonks |
Distributing code to 100's of serversby perlofwisdom (Pilgrim) |
on Oct 31, 2007 at 01:04 UTC ( [id://648152]=perlquestion: print w/replies, xml ) | Need Help?? |
perlofwisdom has asked for the wisdom of the Perl Monks concerning the following question:
I've got several hundred servers (Windows, Linux, and several flavors of Unix) that have all of our maintenance scripts (hundreds of scripts, in dozens of sub-directories), on multiple networks. As you can imagine, maintenance of this environment is difficult at best. Since many of the scripts use common modules, any change to the source code is tightly controlled. And, because of heavy inter-dependence between the modules, changes are normally supposed to be distributed as a release bundle. Even with fairly good controls over the code, keeping everything in sync with the master copy is nearly impossible. The real problem is that our current distribution method is undocumented and laden with obfuscated code (I tip my hat to those of you gifted in this fine art, alas I am not). To make matters worse, the guy who wrote it has left the company and now lives out of state. So, it looks like I'll have to re-write the entire process. I could use a few tips on how to do the following things remotely, and from just a few distribution points (probably one per network): 1) tar/zip the existing code on the target server. 2) In the event of failure (incomplete distribution to a server, or widespread new bugs in the new release), I need to be able to reverse the process using the saved tar/zip file from requirement #1. 3) Deploy the new distribution (which will also be in a tar ball/zip file). 4) Verify successful deployment. I know I'm not the only one out there who has the responsibility for keeping things running in a crazy environment like this, so I come seeking wisdom from those of you who may have faced this before. Any help? UPDATE: This is why I love PerlMonks! You've given me some great ideas, and a lot more to investigate. I should've mentioned that we are using CVS as the repository. But, since several of you mentioned that, it opened up new avenues of thought. I welcome any more suggestions on how to implement your solutions with CVS. Thanks again.
Back to
Seekers of Perl Wisdom
|
|