in reply to Keeping code up2date over multiple servers
An interesting problem and idea. I experience a similar problem internal to the company I work for, where some of the same modules are used on different servers, and must be kept in sync. I am still looking for a good solution.
In terms of your comments, a few comments came to mind.
First, you will have to make sure that you upgrade the entire set of programs at one shot, or that all of the pieces you upgrade are 100% backward compatible. You may want to make a way to regress back to the previous version after an upgrade, such as by making a backup at the outset of the process, just in case (and report such action back, so you can be aware that a problem occurred and can contact them for additional information and to offer assistance).
As to the actual update, CVS, patch, and rsync, come to mind, but I would suspect CVS would be most useful in this case. (I'm not an expert in any of the three, so I may be wrong here.) It is my understanding that you can create a branch in the code with a particular name, such as "current," that you could cause the update client to always pull from. You might look at the VCS::* modules on CPAN to help in interacting with CVS. Rsync might work, but my understanding of it is that it would replace entire files, so any customizations would have to be kept in files that would not be modified, although you could perhaps use it for just grabbing the patches, then using the patch command or something. (You could perhaps also write a webclient using LWP to retrieve the data, although rsync can do some data compression along the way, iirc.)
The only other issue I see is that the code for pulling the update must be capable of writing into the program tree, which is perhaps a little scary due to potential security implications-and assuming that the product in question is related to web pages or CGIs, that could be very scary indeed. Perhaps an alternative would be the web admin page creating a flag (say, by updating a value in a file or database), and a seperate program run as a cron job to look for that flag and initiate the process, thereby making it unnecessary for the web administration tool to have to write to the location where the applications are stored.
Again, these were just a few thoughts that flashed across my neurons as I read your posting. I would be interested to hear how your search for such a system turns out. Best of luck.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Keeping code up2date over multiple servers
by mp (Deacon) on Sep 17, 2002 at 15:49 UTC | |
Re: Re: Keeping code up2date over multiple servers
by calacode (Initiate) on Sep 17, 2002 at 15:23 UTC |