I created catalyst cookbook as helper for launching catalyst applications. I work in IT company in web development department, where we deal with Perl application and we use Catalyst framework! Deploying Catalyst applications may be cumbersome process, so many details you should take into account - passing environment vars to application, switching to unprivileged user before launching, using nonstandard Perl lib paths, etc ... With catalyst cookbook and chef this process is simplified and becomes neater. Explaining Catalyst and chef is beyond the scope of this document, you may follow links bellow.
Catalyst cookbook provides
catalyst_application provider usable in your custom chef recipes. In general all you have to say is:
catalyst_application <application-name> do application_home <path-to-your-catalyst-application> application_script <script-to-run-catalyst-application> catalyst_config <your-catalyst-application-config> action 'install' end
Where corresponding attributes should be thought as:
application_name- an arbitrary string named your application
application_home- a directory where application and all it's prerequisites live, should be absolute path
application_script- a name of script to start application, an absolute path to your application will be constructed with application_home/script/application_script
catalyst_config- a path to catalyst configuration file
Well, actually some more attributes may come into play, see their explanation in other docs, but these 4 are obligatory.
What does happen behind the scenes when your converge your node via catalyst_application?
application_homehas configured as fastcgi server and corresponding configuration file is created
if everything is okay the application is ready to start as server via command depending on the platform you are on, on ubuntu and gentoo Linux it will be: