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
workarea
anddeployment
:mkdir workarea mkdir deployment
-
Make a directory inside
workarea
calledconf
:mkdir workarea/conf
-
cd to the
deployment
directory:cd deployment
-
Unzip the file that you downloaded here.
-
cd to the
workarea/conf
directory: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
codeine
calledmysql_lib
:cd ../.. mkdir mysql_lib
-
Grab the contents of the
libs/mysql
directory 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.json
that 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_dir
lines. - Change the MySQL user and password from
codeine
to 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_HOME
environment 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
export
instead ofsetenv
.) -
On both the server machine and on each client machine, set the value of the
CODEINE_WORKAREA
environment variable:setenv CODEINE_WORKAREA /full/path/to/workarea
(This is the workarea directory that you created above.)
-
Start the server. From the
codeine
directory, 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
codeine
directory, 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