There are many, many ways to deploy Pressflow, but this is the method Four Kitchens uses for its largest projects.

Setup

  1. Add the EPEL and Four Kitchens Yum repositories.
  2. Install Ant and other dependencies:
    sudo yum install ant ant-apache-regexp bzr bzrtools createrepo
    
  3. Make the project available in a Bazaar branch
  4. Branch the Pressflow Deployment Packaging project code into deployment-packaging:
    bzr branch lp:pressflow-deployment-packaging deployment-packaging
    
  5. Create a properties file with your application's settings:
    application.branch=lp:~BRANCH-OWNER/PROJECT/BRANCH
    application.name=PROJECT
    application.summary=DESCRIPTION
    application.packager=FIRST LAST <ADDRESS@EXAMPLE.COM>
    application.vendor=VENDOR
    application.webroot=PATH-TO-DRUPAL-OR-PRESSFLOW
    application.domain=DOMAIN
    yum-repository=DESTINATION-FOR-RPM-PACKAGE
    
  6. Try to create a build:
    ant build
    
  7. Install vsftpd and enable anonymous access (but disable writes).
  8. Create a directory under /var/ftp/pub to host the Yum repository for builds.
  9. Try to create and publish a build:
    ant publish
    

Client setup

  1. Add and enable the Yum repository from the management box:
    [PROJECT]
    name=PROJECT
    baseurl=ftp://MANAGEMENT-BOX/pub/PROJECT/
    failovermethod=priority
    enabled=1
    gpgcheck=0
    
  2. Attempt to install the project via Yum:
    sudo yum install PROJECT
    

Starting simple: creating an RPM with from tip of the specified branch

  1. Make deployment-packaging the working directory.
  2. Create an RPM:
    ant
    

More complex: building and publishing a tag-based RPM to your application's Yum repository

  1. Make deployment-packaging the working directory.
  2. Create and publish an RPM:
    ant publish -Dapplication.tag=release-1.1
    

Deployment

  1. Use a management utility or deployment tool to install or update the RPM on target systems.
  2. Restart necessary services.

Feedback, questions, and bugs

Please post these to this project's space on Launchpad.