The majority of our app servers are currently Gentoo but will be moving to Fedora.<br><br>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.<br>
<br>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.<br>
<br>The jury is still out on if this is beautifully elegant or overly complex...<br><br><br>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.<br>
<br>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.<br><br>
Thanks,<br clear="all">
<br>-- <br>Bill Moseley<br><a href="mailto:moseley@hank.org">moseley@hank.org</a><br>