Building and deploying on CentOS 5
There are many, many ways to deploy Pressflow, but this is the method Four Kitchens uses for its largest projects.
Setup
- Add the EPEL and Four Kitchens Yum repositories.
- Install Ant and other dependencies:
sudo yum install ant ant-apache-regexp bzr bzrtools createrepo
- Make the project available in a Bazaar branch
- If the project is already in Bazaar, this is done.
- If the project is not in Bazaar, try to create a local branch that imports the appropriate code from Subversion, Mercurial, or git. Importing Subversion on CentOS 5 requires Subversion support for Bazaar on CentOS 5.
- If all else fails, export the code to deploy and import it into a Bazaar branch. Commit.
- Branch the Pressflow Deployment Packaging project code into
deployment-packaging
:bzr branch lp:pressflow-deployment-packaging deployment-packaging
- Create a properties file with your application's settings:
deployment-packaging/build.properties
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
- You can also specify
application.branch-prefix
instead ofapplication.branch
if most branches reside in the same root path. See the top of the Ant script for details.
- You can also specify
- Try to create a build:
ant build
- Install
vsftpd
and enable anonymous access (but disable writes). - Create a directory under
/var/ftp/pub
to host the Yum repository for builds. - Try to create and publish a build:
ant publish
Client setup
- Add and enable the Yum repository from the management box:
/etc/yum.repos.d/PROJECT.repo
[PROJECT] name=PROJECT baseurl=ftp://MANAGEMENT-BOX/pub/PROJECT/ failovermethod=priority enabled=1 gpgcheck=0
- Attempt to install the project via Yum:
sudo yum install PROJECT
Starting simple: creating an RPM with from tip of the specified branch
- Make
deployment-packaging
the working directory. - Create an RPM:
ant
More complex: building and publishing a tag-based RPM to your application's Yum repository
- Make
deployment-packaging
the working directory. - Create and publish an RPM:
ant publish -Dapplication.tag=release-1.1
Deployment
- Use a management utility or deployment tool to install or update the RPM on target systems.
- Restart necessary services.
Feedback, questions, and bugs
Please post these to this project's space on Launchpad.