I started to use Puppet in the past year to automate deployment processes for some of our customers. It made sense then to automate the Neo4j deployment process using a collection of Puppet manifests. Here are some of the benefits of this approach
- Increased productivity – Instead of transferring large disk images from one AWS region to another you can simply transfer the deployment process (a few kilobytes of Puppet manifests) and repeat the process in each AWS region.
- Change management – When a new version of Neo4j is released you can easily update the manifest parameters and redeploy.
- Deploy anywhere – If you want to reproduce the same software stack outside of AWS (in-house, Rackspace etc) you can grab the latest manifests from Github and deploy to the new platform.
The Puppet manifests used here are now available on Puppet Forge as well as on Github.
To pull the manifests from Github run: git clone https://github.com/opencredo/neo4j-puppet.git
EC2 security group for Neo4j
If you would like to connect a Neo4j instance from outside of AWS, you should create a Security Group that allows connectivity on port 7474 as well as on port 22 for SSH.
You need to associate this group with the instance at instance launch time. Security Group configuration steps can be found here.
OpenJDK VS. OracleJDK
Neo4j-puppet module deploys the JRE from the OpenJDK package instead of the JDK distributed by Oracle.
To install a different version of the JRE you can change the value of the variable $jreinstaller in the file params.pp prior to deployment.
Updating the Neo4j version
The file params.pp also contains a variable $neoversion that can be used to specify the version of Neo4j that is to be installed.
Currently the Puppet module cannot be used to upgrade existing Neo4j server; it can only be used for fresh deployments.
Neo4j graph database server images per AWS region
The Neo4j AMI can be found by searching for “Neo4j 1.7.2 CE Ubuntu 12.04 64-bit” in AWS console.
Alternatively you can use the following hyperlinks to launch Neo4j image in specific region.
This blog is written exclusively by the OpenCredo team. We do not accept external contributions.