Skip to content

orsonkent/bosh-sample-release

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a sample release repository for BOSH that deploys a three tier LAMP application: a wordpress blog which consists of a number of apache servers running php & wordpress, fronted by nginx, and using one mysql database for storage.

The sample is made up of three jobs:
- mysql
- wordpress
  which consist of apache + php5 + wordpress
- nginx

The repository also contains a sample deployment file (wordpress.yml) which you can use to deploy the jobs that makes up the application, after updating the "networks" section.

There are three main directories in the release:
- src
  this is the source code for the packages
- packages
  this is instructions on how to compile the source into binaries
- jobs
  this is scripts and configuration files required to run the packages

A package is made up of the following files:
- spec
  defines the package name, the source file it uses and optionally other
  packages it depends on to compile
- pre_packaging
  an optional file that prepares the source for the packaging script
- packing
  the script that compiles the source into binaries

A job is made up of the following files:
- spec
  defines the job name, package dependencies and how to convert templates
  into files
- monit
  the monit file which defines how to start and stop the job
- templates
  a directory which contain the scripts and config files for the job

The wordpress job consist of four packages: apache2, php5, wordpress and mysqlclient.
Normally php is compiled into apache, but here it is kept in its own package so that you can easily upgrade one without the other.

To deploy the sample application use the following command sequence:

bosh create release (name it wordpress)
bosh upload release
edit deployment manifest (wordpress.yml)
bosh deployment wordpress.yml
bosh deploy


TODO
use HyperDB & MySQL master/slave replication
http://wordpress.org/extend/plugins/hyperdb/installation/
http://dev.mysql.com/doc/refman/5.1/en/replication-howto.html

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published