Codeine is a continuous deployment tool that makes product deployment faster and safer through automation and monitoring.
-
Download the latest release from here.
-
Make a directory called
codeine:mkdir codeine -
cd to this new directory:
cd codeine -
Make directories called
workareaanddeployment:mkdir workarea mkdir deployment -
Make a directory inside
workareacalledconf:mkdir workarea/conf -
cd to the
deploymentdirectory:cd deployment -
Unzip the file that you downloaded here.
-
cd to the
workarea/confdirectory:cd ../workarea/conf -
If you want Codeine to run its own MySQL instance (only compiled for and tested on Suse Linux 10 and 11, 64-bit; may work on other versions, YMMV):
-
Create a directory under
codeinecalledmysql_lib:cd ../.. mkdir mysql_lib -
Grab the contents of the
libs/mysqldirectory from the Codeine repository. The easiest way to do this is with svn:svn export https://github.com/codeine-cd/codeine/trunk/libs/mysql
-
-
Create a file called
codeine.conf.jsonthat contains the following:{ "web_server_host": "<hostname>", "web_server_port": <port>, "admin_mail": "<email_address>", "mysql":[{ "host": "<db_hostname>", "port": <db_port>, "dir": "workarea/mysql_work", "bin_dir":"mysql_lib", "user": "<user>", "password": "<password>", "managed_by_codeine": true }] }Replace the placeholders with actual values.
Note: If you are running your own MySQL instance (instead of letting Codeine run one for you):
- Omit the
"dir"andbin_dirlines. - Change the MySQL user and password from
codeineto the ones for your MySQL server. - Change
"managed_by_codeine"tofalse.
- Omit the
-
On both the server machine and on each client machine, set the value of the
JAVA_HOMEenvironment variable. The path varies depending on the Linux distribution, local environment, etc.:setenv JAVA_HOME /path/to/jdk(This is for tcsh. For bash, use
exportinstead ofsetenv.) -
On both the server machine and on each client machine, set the value of the
CODEINE_WORKAREAenvironment variable:setenv CODEINE_WORKAREA /full/path/to/workarea(This is the workarea directory that you created above.)
-
Start the server. From the
codeinedirectory, type:deployment/bin/run-server.pl
you can now see it at the following link:
http://localhost:<port>/
-
On each client machine, run the Codeine client. From the
codeinedirectory, type:deployment/bin/run-peer.pl
You can see all the connected clients by going to Manage Codeine | Codeine Nodes Info: http://localhost:/codeine-nodes?project=Codeine_Internal_Nodes_Project&version=All+versions
- Node—an application that is deployed on a single machine (including Codeine itself)
- Project—a set of homogeneous nodes
- Monitor—a script that runs on each node of a project to monitor its status. A project can have multiple monitors.
- Command—a script that runs on selected nodes of a project, to execute some action (for example, deploying a new version). A project can have multiple commands.
- Deployment and upgrades of new versions
- Script based automation
- Immediate/progressive execution
- Full control during deployment: progress view, manual cancel, etc.…
- Fully customizable as needed through a simple interface
- Monitoring:
- Script-based
- Email notifications
- Automatic trigger for deployment cancellation
- Permissions management
- Access level separation per user/project (view/command/configure)
- Easily manageable
- Web view with all the deployment information of your project in one place:
- Aggregated view based on versions
- Filtering of nodes by name or tag
- Status of the nodes of your application
- Command history for previous deployments
- Graph view of nodes' status