The majority of our app servers are currently Gentoo but will be moving to Fedora.
For the Gentoo machines I have a script to build and package our Cat apps on a build server and another deployment script to "push" the app to a target server (which may then rsynced to multiple machines.) Part of that push process is setting up a crontab in /etc/cron.d/ for the app, as well as /etc/init.d/ scripts. The same package is pushed to different environments or "roles" such as testing, staging, and production. The application uses a modified configuration based on the role, and also has a different crontab file for each role. I use an /etc/$app_name.conf file to define the role for the machine -- so, for example, the push script looks at /etc/$app_name.conf and knows which crontab to build (it uses Template Toolkit for this), and likewise the /etc/init.d/ script also uses the /etc/$app_name.conf file to start the application in the correct role (e.g. testing, production, etc.). We use mod_perl so the start up script also builds an httpd.conf on-the-fly customized for the role from settings in the app configuration file. The jury is still out on if this is beautifully elegant or overly complex... So, the plan is to move to packaging as an RPM. What I'm wondering is if anyone is currently packaging as an RPM and if they are using a post-install script to do anything like what I describe above. If so, I'd like to hear how you have set up this process and what your post-install script does along with any other tips you may have from your experience. The ultimate goal is to be able to bring up a new machine and install the RPM and have it bring in all dependencies and start running in a standard way and w/o requiring intimate knowledge of the application. Thanks, -- Bill Moseley [email protected]
_______________________________________________ List: [email protected] Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/[email protected]/ Dev site: http://dev.catalyst.perl.org/
