> Hey Jim -- > > > Also, Randal Schwartz wrote about cvs is a slightly more general setting: > > > > http://www.linux-mag.com/2002-07/perl_01.html > > > The system we use goes a bit beyond even what Randal describes (although, he > is on a similar track). > > In a nutshell, the Apache "httpd.conf" file is "templatized" to replace > elements such as the IP address, host name and path names with variables. > To start the server for a particular environment the developer runs a Perl > program which creates a custom "httpd.conf"
This is so close to what I recently put together one would have to worry about plagarism :-) I took it one step further, in that my setup script will configure not only the base http config files (for both proxy and app server), but also all the database configuration scripts, and application configurations. I did an install for a fellow developer today in about 5 minutes - complete proxy/app server config, build and populate database tables. I had to edit one file, which in turn was used to create the customized configuration files. I don't keep the base config files in CVS - yet. All source is in CVS, but I haven't got around to moving the config into CVS. Regarding deployment, I wrote a tool which goes into CVS and extracts tagged modules. The extracted code is placed into a tar archive with a few other files which indicate where the code is to be installed, plus a few other goodies. I can then give this deployment archive to our sysadmin who can simply type deploy --install the-file.dar and the code gets installed. We have separate deployment files for the perl libs, the Mason components, images, and a few other odds and ends. It works well, and it's very easy. Why a custom deploy tool? I didn't like the idea of using CVS on the production server, which is in a very tightly controlled environment. I doubt if I could have enticed the network folks to open the firewall to let CVS traffic through in any case.... Cheers! -klm.