Catalyst cookbook intro
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 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.
Behind the scenes
What does happen behind the scenes when your converge your node via catalyst_application?
catalyst application residing in
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:
- 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
- http://search.cpan.org/perldoc?Catalyst - docs on Catalyst framework
- http://search.cpan.org/perldoc?Catalyst::Engine::FastCGI - running catalyst app as fastcgi server
- http://wiki.opscode.com/display/chef/Home - chef