[Catalyst] Building RPMs of application
moseley at hank.org
Tue Oct 19 13:35:39 GMT 2010
The majority of our app servers are currently Gentoo but will be moving to
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
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.
moseley at hank.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Catalyst