Organist is an open source tool which helps you manage and execute deployments. It's built on top of Symfony2 and Capistrano/Capifony.
First impression
Key advantages
- Easy to use, everyone can deploy by just hitting a button
- Overview over your DTAP, see which version is deployed on which server
- Centralized security, credentials are injected during deployment (no more passwords in your VCS)
- It logs all of your deployments, so you can see who deployed what and when
- Flexible to extend. Use it with your own type of applications and parameters
Proven technology
Built on top of:
- Symfony2, which is a proven to be a solid foundation for many apps
- Capistrano / Capifony, deployments are delegated to these excellent gems
- Anyterm, which will give you an interactive console during deployment in your browser
- Twitter Bootstrap, you can initiate deployments from your mobile ;-)
Getting started
For most users the organist/packer repository is the place to start with Organist.
Other repositories
There are 3 repositories in the organist namespace. There is "Organist" which is the actual Symfony2 application. And there is packer and puppet which will help you build an Organist box. These last two repositories are written to give you a quick start. Packer will download a fresh CentOS ISO, does a kickstart setup and runs the Puppet scripts to build up the entire stack that is needed to run Organist.
Organist is highly dependant on other software layers and settings, which is why these layers and settings are poured into Puppet scripts. And it is why these are run from Packer to prevent obscurity what might be in a custom basebox.
Data model
This is a little scheme, which explains the data model that is being administered in organist.
application --< userfile
|
^
environment --< target --< log
- Application, which you want to deploy
- Userfile(s), are the shared files and/or directories which needs to be shared between deployments
- Environment, the hosting environment you want to deploy to
- Target, combination of application and environment including accountname, db credentials, etc
- Log, which stores the result of the deployment