Catalyst cookbook intro

melezhik edited this page Jan 24, 2012 · 7 revisions
Clone this wiki locally

Catalyst cookbook intro

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 application

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'

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.

Behind the scenes

What does happen behind the scenes when your converge your node via catalyst_application?

  • catalyst application residing in application_home has 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:

    /etc/init.d/application-name start


  • the catalyst_application resource now only support for fastcgi server run mode, other modes may be added upon request
  • configuration of apache is beyond the scope, but you may consider my apache cookbook