Elasticsearch in a box

Are you looking to get going with Elasticsearch as quickly as possible without having to worry about installing Java or Elasticsearch itself? Are you looking for a repeatable and automated mechanism for bringing up Elasticsearch instances for developmental and or testing purposes? While there’s certainly a number of Elasticsearch-as-a-platform service providers out there, there’s one other option: use Elasticsearch-in-a-box.

Elasticsearch-in-a-box is a freely available Vagrant base box. What that means is that you can quickly fire up and tear down an Elasticsearch environment with simple commands like vagrant up and vagrant destroy.

In order to use Elasticsearch-in-a-box, you first need to have Vagrant and VirtualBox installed. These two installations couldn’t be any easier. To install Vagrant, simply go to the downloads page and pick your target distribution. Vagrant provisions machines on top of virtual machine providers like VMWare, AWS, and VirtualBox. VirtualBox is free and easy to install – like Vagrant, simply go to the downloads section and pick your target platform.

Once you have both Vagrant and VirtualBox installed, you are two steps away from Elasticsearch-ing.

First, you need to add and initialize the Elasticsearch-in-a-box template. Go ahead and create a directory, like /projects/esinabox, change directories into it and execute this command:

This command will create a Vagrant definition named esinabox from the downloaded template
<span class='line-number'>1</span>
<code class='bash'><span class='line'>vagrant box add esinabox https://s3.amazonaws.com/coffers/esinabox.box

This command will download the Elasticsearch-in-a-box template. Once that completes (it’ll take a few moments depending on your connection), execute this command:

Vagrant init will create a VagrantFile
<span class='line-number'>1</span>
<code class='bash'><span class='line'>vagrant init <span class="s1">'esinabox'</span>

This command will create a VagrantFile, which you can use to customize the Elasticsearch-in-a-box instance. By default, you shouldn’t need to do much, however, you can map network ports, install additional software via Bash, Chef, and Puppet at your discretion.

Next, fire up Elasticsearch-in-a-box like so:

Starting up Elasticsearch-in-a-box
<span class='line-number'>1</span>
<code class='bash'><span class='line'>vagrant up

Now that Elasticsearch-in-a-box is running locally on your machine, you can open up a new terminal and execute RESTful commands like normal because Elasticsearch is running on same ports: 9200 & 9300. So go ahead and execute some queries, like so:

Elasticsearch is up an running!
<span class='line-number'>1</span>
<code class='bash'><span class='line'>curl -XGET <span class="s1">'http://localhost:9200/_status?pretty=true'</span>

And when you are done, go ahead and tear down the instance like so:

Destroying a VM instance
<span class='line-number'>1</span>
<code class='bash'><span class='line'>vagrant destroy -f

Wasn’t that easy? The Elasticsearch-in-a-box Vagrant template was built using Veewee. The base box is 64-bit Ubuntu 12.04 with Oracle’s Java 7 and Elasticsearch version 0.90.7.

If you’re looking for a quick and easy way to automatically provision Elasticsearch, then look no further and give Elasticsearch-in-a-box a try!

This story, "Elasticsearch in a box" was originally published by JavaWorld.


Copyright © 2013 IDG Communications, Inc.