~charming-devs/charms/precise/elasticsearch/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
To deploy elasticsearch locally you just need to:

  juju bootstrap
  juju deploy elasticsearch
  you can add more units ...  LXC can deal with multicast
  juju add-unit elasticsearch

To deploy on ec2 you need to specify a config file with your AWS access key and secret key which are used by
elasticsearch for discovery.  See the elastisearch on ec2 tutorial for more information:

see http://www.elasticsearch.org/tutorials/2011/08/22/elasticsearch-on-ec2.html

For instance in an elasticsearch.yaml config file you would have:

elasticsearch:
  access-key: Your_AWS_Access_Key
  secret-key: Your_AWS_Secret_Key

You can also set a region config parameter in this file if the us-east region is not the one you want to use for
discovery.  See the elasticache aws plugin documentation for more information:

https://github.com/elasticsearch/elasticsearch-cloud-aws

all that failing I have built an experimental config item 'zenmasters' which should enable unicast clustering.

Once the unit has started you can test if everything's working by using curl as below to do a health check
which should give you a similar json response.

  $ curl -XGET 'http://<ec2 dns or ip of a node>:9200/_cluster/health?pretty=true'

  {
    "cluster_name" : "es-demo",
    "status" : "green",
    "timed_out" : false,
    "number_of_nodes" : 2,
    "number_of_data_nodes" : 2,
    "active_primary_shards" : 5,
    "active_shards" : 10,
    "relocating_shards" : 0,
    "initializing_shards" : 0,
    "unassigned_shards" : 0
  }

the download files for the current version are included in the package,  but they can be downloaded by removing the files, or changing the config to point to a different version.

there seems to be something a bit buggy with the service wrapper on the first unit ...  if it's not start/stopping properly,  get in there and hard kill any java processes then start it again using the service wrapper.   seems to work fine after doing that.