Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status

RSS

elasticsearch (92) Versions 3.0.2

Installs and configures Elasticsearch

Policyfile
Berkshelf
Knife
cookbook 'elasticsearch', '= 3.0.2', :supermarket
cookbook 'elasticsearch', '= 3.0.2'
knife supermarket install elasticsearch
knife supermarket download elasticsearch
README
Dependencies
Changelog
Quality 50%

Elasticsearch Chef Cookbook

Build Status Cookbook VersionBuild Status

Pre-requisites & Supported Versions

Java Runtime - This cookbook requires java, but does not provide it. Please install Java before using any recipe in this cookbook. Please also note that Elasticsearch itself has specific minimum Java version requirements. We recommend this cookbook to install Java.

Elasticsearch - This cookbook is being written and tested to support Elasticsearch 5.x and greater. If you must have a cookbook that works with older versions of Elasticsearch, please test and then pin to a specific, older major.minor version of this cookbook and only leave the patch release to float. Older versions can be found via Git tags or on Chef Supermarket. We also maintain bugfix branches for major released lines (0.x, 1.x, 2.x) of this cookbook so that we can still release fixes for older cookbooks.

Chef - The latest release of this cookbook is intended to support the three most recent releases of Chef, and tests against those. Earlier versions may also be supported, though we suggest that you use Chef 12.x at a minimum. It implements support for CI as well as more modern testing with chefspec and test-kitchen. It no longer supports some of the more extraneous features such as discovery (use chef search in your wrapper cookbook) or EBS device creation (use the aws cookbook).

Previous versions of this cookbook may be found using the git tags on this repository.

Attributes

Please consult [attributes/default.rb](attributes/default.rb) for a large list
of checksums for many different archives and package files of different
elasticsearch versions. Both recipes and resources/providers here use those
default values.

You may use %s in your URL and this cookbook will use sprintf/format to insert
the version parameter as a string into your download_url.

Name Default Other values
default['elasticsearch']['download_urls']['debian'] [See values](attributes/default.rb). %s will be replaced with the version attribute above
default['elasticsearch']['download_urls']['rhel'] [See values](attributes/default.rb). %s will be replaced with the version attribute above
default['elasticsearch']['download_urls']['tarball'] [See values](attributes/default.rb). %s will be replaced with the version attribute above

This cookbook's elasticsearch::default recipe also supports setting any elasticsearch_ resource using attributes:

default['elasticsearch']['user'] = {}
default['elasticsearch']['install'] = {}
default['elasticsearch']['configure'] = {}
default['elasticsearch']['service'] = {}
default['elasticsearch']['plugin'] = {}

For example, this will pass a username 'foo' to elasticsearch_user and set a uid to 1234:

default['elasticsearch']['user']['username'] = 'foo'
default['elasticsearch']['user']['uid'] = '1234'

Recipes

Resources are the intended way to consume this cookbook, however we have
provided a single recipe that configures Elasticsearch by downloading an archive
containing a distribution of Elasticsearch, and extracting that into /usr/share.

See the attributes section above to for what defaults you can adjust.

default

The default recipe creates an elasticsearch user, group, package installation,
configuration files, and service with all of the default options.

Please note that there are [additional examples within the test fixtures](test/fixtures/cookbooks/elasticsearch_test),
including a demonstration of how to configure two instances of Elasticsearch on a single server.

Resources

Notifications and Service Start/Restart

The resources provided in this cookbook do not automatically restart services when changes have occurred. They do start services by default when configuring a new service This has been done to protect you from accidental data loss and service outages, as nodes might restart simultaneously or may not restart at all when bad configuration values are supplied.

elasticsearch_service has a special service_actions parameter you can use to specify what state the underlying service should be in on each chef run (defaults to :enabled and :started). It will also pass through all of the standard service resource
actions to the underlying service resource if you wish to notify it.

You must supply your desired notifications when using each resource if you want Chef to automatically restart services. Again, we don't recommend this unless you know what you're doing.

Resource names

Many of the resources provided in this cookbook need to share configuration
values. For example, the elasticsearch_service resource needs to know the path
to the configuration file(s) generated by elasticsearch_configure and the path
to the actual ES binary installed by elasticsearch_install. And they both need
to know the appropriate system user and group defined by elasticsearch_user.

Search order: In order to make this easy, all resources in this cookbook use the following
search order to locate resources that apply to the same overall
Elasticsearch setup:

  1. Resources that share the same resource name
  2. Resources that share the same value for instance_name
  3. Resources named default or resources named elasticsearch
    • This fails if both default and elasticsearch resources exist

Examples of more complicated resource names are left to the reader, but here we
present a typical example that should work in most cases:

elasticsearch_user 'elasticsearch'
elasticsearch_install 'elasticsearch'
elasticsearch_configure 'elasticsearch'
elasticsearch_service 'elasticsearch'
elasticsearch_plugin 'x-pack'

elasticsearch_user

Actions: :create, :remove

Creates a user and group on the system for use by elasticsearch. Here is an
example with many of the default options and default values (all options except
a resource name may be omitted).

Examples:

elasticsearch_user 'elasticsearch'
elasticsearch_user 'elasticsearch' do
  username 'elasticsearch'
  groupname 'elasticsearch'
  shell '/bin/bash'
  comment 'Elasticsearch User'

  action :create
end

elasticsearch_install

Actions: :install, :remove

Downloads the elasticsearch software, and unpacks it on the system. There are
currently three ways to install -- 'repository' (the default), which creates an
apt or yum repo and installs from there, 'package', which downloads the appropriate
package from elasticsearch.org and uses the package manager to install it, and
'tarball' which downloads a tarball from elasticsearch.org and unpacks it.
This resource also comes with a :remove action which will remove the package
or directory elasticsearch was unpacked into.

You may always specify a download_url and/or download_checksum, and you may
include %s which will be replaced by the version parameter you supply.

Please be sure to consult the above attribute section as that controls how
Elasticsearch version, download URL and checksum are determined if you omit
them.

Examples:

elasticsearch_install 'elasticsearch'
elasticsearch_install 'my_es_installation' do
  type 'package' # type of install
  version "5.0.1"
  action :install # could be :remove as well
end
elasticsearch_install 'my_es_installation' do
  type 'tarball' # type of install
  dir tarball: '/usr/local' # where to install

  download_url "https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.7.2.tar.gz"
  # sha256
  download_checksum "6f81935e270c403681e120ec4395c28b2ddc87e659ff7784608b86beb5223dd2"

  action :install # could be :remove as well
end
elasticsearch_install 'my_es_installation' do
  type 'tarball' # type of install
  version '5.0.1'
  action :install # could be :remove as well
end
elasticsearch_install 'my_es_installation' do
  type 'package' # type of install
  download_url "https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.7.2.deb"
  # sha256
  download_checksum "791fb9f2131be2cf8c1f86ca35e0b912d7155a53f89c2df67467ca2105e77ec2"
  instance_name 'elasticsearch'
  action :install # could be :remove as well
end

elasticsearch_configure

Actions: :manage, :remove

Configures an elasticsearch instance; creates directories for configuration,
logs, and data. Writes files log4j2.properties, elasticsearch.in.sh and
elasticsearch.yml.

The main attribute for this resource is configuration,
which is a hash of any elasticsearch configuration directives. The
other important attribute is default_configuration -- this contains the
minimal set of required defaults.

Note that these are both not a Chef mash, everything must be in a single level
of keys and values. Any settings you pass in configuration will be merged into
(and potentially overwrite) any default settings.

See the examples, [as well as the attributes in the resource file](libraries/resource_configure.rb),
for more.

Examples:

With all defaults -
ruby
elasticsearch_configure 'elasticsearch'

With mostly defaults -
ruby
elasticsearch_configure 'elasticsearch' do
allocated_memory '512m'
configuration ({
'cluster.name' => 'escluster',
'node.name' => 'node01',
'http.port' => 9201
})
end

Very complicated -
```ruby
elasticsearch_configure 'my_elasticsearch' do
# if you override one of these, you probably want to override all
path_home "/opt/elasticsearch"
path_conf "/etc/opt/elasticsearch"
path_data "/var/opt/elasticsearch"
path_logs "/var/log/elasticsearch"
path_pid "/var/run/elasticsearch"
path_plugins "/opt/elasticsearch/plugins"
path_bin "/opt/elasticsearch/bin"

logging({:"action" => 'INFO'})

allocated_memory '123m'

jvm_options %w(
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+HeapDumpOnOutOfMemoryError
-XX:+PrintGCDetails
)

configuration ({
'node.name' => 'crazy'
})

action :manage
end
```

elasticsearch_service

Actions: :configure, :remove

Writes out a system service configuration of the appropriate type, and enables
it to start on boot. You can override almost all of the relevant settings in
such a way that you may run multiple instances. Most settings will be taken from
a matching elasticsearch_config resource in the collection.

elasticsearch_service 'elasticsearch'

elasticsearch_plugin

Actions: :install, :remove

Installs or removes a plugin to a given elasticsearch instance and plugin
directory. Please note that there is currently no way to upgrade an existing
plugin using commandline tools, so we haven't exposed that feature here either.
Furthermore, there isn't a way to determine if a plugin is compatible with ES or
even what version it is. So once we install a plugin to a directory, we
generally assume that is the desired one and we don't touch it further.

See https://github.com/elastic/cookbook-elasticsearch/issues/264 for more info.
NB: You may encounter issues on certain distros with NSS 3.16.1 and OpenJDK 7.x.

Officially supported or commercial plugins require just the plugin name:

elasticsearch_plugin 'analysis-icu' do
  action :install
end
elasticsearch_plugin 'shield' do
  action :install
end

Plugins from GitHub require a URL of 'username/repository' or 'username/repository/version':

elasticsearch_plugin 'kopf' do
  url 'lmenezes/elasticsearch-kopf'
  action :install
end

elasticsearch_plugin 'kopf' do
  url 'lmenezes/elasticsearch-kopf/1.5.7'
  action :install
end

Plugins from Maven Central or Sonatype require 'groupId/artifactId/version':
ruby
elasticsearch_plugin 'mapper-attachments' do
url 'org.elasticsearch/elasticsearch-mapper-attachments/2.6.0'
action :install
end

Plugins can be installed from a custom URL or file location as follows:
```ruby
elasticsearch_plugin 'mapper-attachments' do
url 'http://some.domain.name//my-plugin-1.0.0.zip'
action :install
end

elasticsearch_plugin 'mapper-attachments' do
url 'file:/path/to/my-plugin-1.0.0.zip'
action :install
end
```

The plugin resource respects the https_proxy or http_proxy (non-SSL)
Chef settings unless explicitly
disabled using chef_proxy false:
ruby
elasticsearch_plugin 'kopf' do
url 'lmenezes/elasticsearch-kopf'
chef_proxy false
action :install
end

To run multiple instances per machine, an explicit plugin_dir location
has to be provided:

elasticsearch_plugin 'x-pack' do
  plugin_dir '/usr/share/elasticsearch_foo/plugins'
end

If for some reason, you want to name the resource something else, you may
provide the true plugin name using the plugin_name parameter:

elasticsearch_plugin 'xyzzy' do
  plugin_name 'kopf'
  url 'lmenezes/elasticsearch-kopf'
  action :install
end

Testing

This cookbook is equipped with both unit tests (chefspec) and integration tests
(test-kitchen and serverspec). It also comes with rubocop and foodcritic tasks
in the supplied Rakefile. Contributions to this cookbook should include tests
for new features or bugfixes, with a preference for unit tests over integration
tests to ensure speedy testing runs. All tests and most other commands here
should be run using bundler
and our standard Gemfile. This ensures that
contributions and changes are made in a standardized way against the same
versions of gems. We recommend installing rubygems-bundler so that bundler is
automatically inserting bundle exec in front of commands run in a directory
that contains a Gemfile.

A full test run of all tests and style checks would look like:
bash
$ bundle exec rake style
$ bundle exec rake spec
$ bundle exec rake integration
$ bundle exec rake destroy

The final destroy is intended to clean up any systems that failed a test, and is
mostly useful when running with kitchen drivers for cloud providers, so that no
machines are left orphaned and costing you money.

Fixtures

This cookbook supplies a few different test fixtures (under test/fixtures/)
that can be shared amongst any number of unit or integration tests: cookbooks,
environments, and nodes. Environments and nodes are automatically loaded into
chef-zero for both chefspec tests that run locally and serverspec tests that run
from test-kitchen.

It also contains 'platform data' that can be used to drive unit testing, for
example, you might read httpd for some platforms and apache2 for others,
allowing you to write a single test for the Apache webserver. Unfortunately,
without further modifications to busser and busser-serverspec, the platform
data will not be available to serverspec tests.

Style and Best Practices

Rubocop and Foodcritic evaluations may be made by running rake style. There
are no overrides for foodcritic rules, however the adjustments to
rubocop are made using the supplied .rubocop.yml file and have been documented
by comments within. Most notably, rubocop has been restricted to only apply to
.rb files.

Rubocop and foodcritic tests can be executed using rake style.

Unit testing

Unit testing is done using the latest versions of Chefspec. The current default
test layout includes running against all supported platforms, as well as
stubbing data into chef-zero. This allows us to also test against chef search.
As is currently a best practice in the community, we will avoid the use of
chef-solo, but not create barriers to explicitly fail for chef-solo.

Unit tests can be executed using rake spec.

Integration testing

Integration testing is accomplished using the latest versions of test-kitchen
and serverspec. Currently, this cookbook uses the busser-serverspec plugin for
copying serverspec files to the system being tested. There is some debate in the
community about whether this should be done using busser-rspec instead, and each
busser plugin has a slightly different feature set.

While the default test-kitchen configuration uses the vagrant driver, you may
override this using ~/.kitchen/config.yml or by placing a .kitchen.local.yml
in the current directory. This allows you to run these integration tests using
any supported test-kitchen driver (ec2, rackspace, docker, etc).

Integration tests can be executed using rake integration or kitchen test.

License

This software is licensed under the Apache 2 license, quoted below.

Copyright (c) 2015 Elasticsearch 

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Dependent cookbooks

apt >= 0.0.0
yum >= 0.0.0
chef-sugar >= 0.0.0
ark >= 0.0.0

Contingent cookbooks

apache-log-analysis Applicable Versions
askbot Applicable Versions
bigdesk Applicable Versions
chamber-kibana Applicable Versions
elastic Applicable Versions
elasticsearch-head Applicable Versions
elk Applicable Versions
elkstack Applicable Versions
et_elk Applicable Versions
nodestack Applicable Versions
paramount Applicable Versions
platformstack Applicable Versions
puncha-kibana Applicable Versions
sudo_elastic Applicable Versions
zammad Applicable Versions

Change Log

v3.0.2 (2016-11-29)

  • Ensure bin/elasticsearch-plugin uses the proper environment (#523)
  • Bump default Elasticsearch version from v5.0.0 to v5.0.1

v3.0.1 (2016-11-09)

  • Fix incorrect MAX_MAP_COUNT default to be '262144' to match init scripts (#516)

v3.0.0 (2016-11-07)

Breaking changes that were needed for v5.0.0 support (#497, #512, #424, #478, #503):
- We dropped the fancy logic for figuring out the requested version of Elasticsearch to be installed. You should pass it on the resource or in the recipe, but we no longer do a bunch of logic to figure out what you meant -- we favor being explicit now.
- We now start the service by default, instead of only :enable but not :start.
- Dropped gc_options parameter of elasticsearch_configure, and now have jvm.options. We've also dropped thread_stack_size and env_options, as they aren't used in the upstream packaging as defaults anymore.
- Install the tarball and package files into the same locations. There's no more /usr/local.
- Install types are now 'strings', not :symbols. node['elasticsearch'][<resource>][<param>] sets any elasticsearch::default recipe.

For more on breaking changes, read 3aa8740 and 1ccd013.

  • Switch to the manage_home false property of newer Chef versions (#406)
  • Use YAML library directly from now on for elasticsearch.yml (#470)
  • Add support for Ubuntu 16.04 / CentOS 7.2, both using systemd (#501, #502)
  • Support and use 'repository' type on elasticsearch_install by default (#476)
  • Based on the latest v5.0.0 packages, tweak the permissions for some directories slightly (#513)
  • Drop preferIPv4 test (#475), discovery.zen.ping settings (#437), and others.
  • Add Java 8 testing by default (#510), bump newer Chef versions (#503, #505)
  • Start using exact plugin names, case sensitive (#485)

v2.4.0 (2016-09-15)

  • Update attributes for 2.3.5 and 2.4.0 versions. Use 2.4.0 version as default for installation and tests. #496 and #490
  • Added a LICENSE file (Apache 2), metadata, and linting
  • Remove chef 11 compatibility from metadata, update cookstyle and Berkshelf, various Chef standards #481
  • Improve environment file formatting: Remove quotes from vars that don't need it, strip superfluous spaces from ES_JAVA_OPTS #477

v2.3.2 (2016-06-17)

  • Update init scripts and configs to latest #461
  • Don't make environment file executable #474
  • Don't make config YAML file executable #465
  • Make latest Foodcritic rules pass #466
  • ES 2.3.3 SHA256 sums and default version #464
  • Point to determine_download_url instead of non-existent get_package_url #463

v2.3.1 (2016-05-06)

  • Update documentation for dir in elasticsearch_install #453
  • Define custom matchers helpers for notification testing #458
  • Add checksums for version 2.3.2 #457
  • Default ES version bump to 2.3.2 #459
  • Fix quoting bug in plugin remove action #455
  • Fix typo in README #456

v2.3.0 (2016-04-07)

  • Add checksums for 2.3.1 #451

v2.2.2 (2016-03-22)

  • elasticsearch_configure provider should not modify default resource parameters #445

v2.2.1 (2016-03-04)

  • Incorrectly setting allocated memory in the ES\_JAVA\_OPTS variable #434
  • elasticsearch_service/service_actions accepts (but does not support) Symbols #438

v2.2.0 (2016-02-08)

  • Max heap size is too large #427
  • How to define discovery.zen.ping.unicast.hosts #426
  • elasticsearch_plugin install lacks proxy support #415
  • Default ES version needs upgrading (2.1.0 > 2.1.1) #411
  • config dirs/files and install dirs/files should be owned by root, not es_user #405
  • Reinstalls elasticserach every chef run #404
  • Permission problem when installing Watcher or Shield #423
  • Installing shield and watcher plugins fail with AccessDeniedException #421
  • Plugin removal is broken #418
  • elasticsearch_configure documentation example missing path_home #413
  • Init script can't start #390
  • ruby command not found #378
  • ES 2.2.0 installation fails #429
  • Can't install plugin twice #408
  • Error running recipe on AWS Opsworks #403
  • ES 2.1.0 support #402
  • Any provision to make it Chef 11.10 compatible? #401
  • gateway.expected_nodes default should be 0 #399
  • Add the defaults for slowlogs in logging.yml #398
  • elasticsearch_service resource doesn't work with short syntax #397
  • What is supposed to happen when a config file is changed? #394
  • Doc request - how to create data nodes vs master nodes #393
  • Plugin install isn't idempotent #392
  • Question - Are custom configs required everywhere? #391
  • Is :tarball or :package the preferred installation type? #389
  • Support Amazon platform for init scripts #387
  • "ArgumentError: wrong number of arguments (1 for 0)" at resource_configure.rb #386
  • Do I need to do a Java Installation myself for this to work? #385
  • Support ES 2.0 #384
  • plugin install does not work #382
  • Compile error w/ 1.0.3 and Chef Server 12 #379
  • Allow template cookbook override in _configure #376
  • 1.0.2 Issues with pid files #374
  • Consider using the resource name as a common shared set of resources #373
  • elasticsearch_install broken with v1.0.1 #371
  • Compile Error #370
  • wrong number of arguments (1 for 0) #369
  • fixes typo in readme #428 (spuder)
  • Plugin removal functionality restored #420 (dbaggott)
  • Update to ES 2.1.1 #412 (dbaggott)
  • Makes code examples have color #396 (spuder)
  • Updates docs to show package are now default install #395 (spuder)
  • Update the README to remove a typo #381 (jtwarren)
  • Correct the full changelog links #375 (eheydrick)
  • add missing matchers #368 (thomasdziedzic)

v2.1.1 (2016-01-08)

  • elasticsearch_plugin install lacks proxy support #415
  • Default ES version needs upgrading (2.1.0 > 2.1.1) #411
  • Reinstalls elasticserach every chef run #404
  • Installing shield and watcher plugins fail with AccessDeniedException #421
  • Plugin removal is broken #418
  • elasticsearch_configure documentation example missing path_home #413
  • Init script can't start #390
  • ruby command not found #378
  • Can't install plugin twice #408
  • Error running recipe on AWS Opsworks #403
  • ES 2.1.0 support #402
  • Any provision to make it Chef 11.10 compatible? #401
  • gateway.expected_nodes default should be 0 #399
  • Add the defaults for slowlogs in logging.yml #398
  • elasticsearch_service resource doesn't work with short syntax #397
  • What is supposed to happen when a config file is changed? #394
  • Doc request - how to create data nodes vs master nodes #393
  • Plugin install isn't idempotent #392
  • Question - Are custom configs required everywhere? #391
  • Is :tarball or :package the preferred installation type? #389
  • Support Amazon platform for init scripts #387
  • "ArgumentError: wrong number of arguments (1 for 0)" at resource_configure.rb #386
  • Do I need to do a Java Installation myself for this to work? #385
  • Support ES 2.0 #384
  • plugin install does not work #382
  • Compile error w/ 1.0.3 and Chef Server 12 #379
  • Allow template cookbook override in _configure #376
  • 1.0.2 Issues with pid files #374
  • Consider using the resource name as a common shared set of resources #373
  • elasticsearch_install broken with v1.0.1 #371
  • Compile Error #370
  • wrong number of arguments (1 for 0) #369
  • missing chef resource expectations in specs in 1.0.1 #367
  • Use predictable attributes/values for version, download URL, and checksum #366
  • Rubocop & foodcritic cleanup #365
  • elasticsearch_plugin installs plugins with the wrong permissions #363
  • Double-dependency on curl #360
  • OS X Support #358
  • Plugin removal functionality restored #420 (dbaggott)
  • Update to ES 2.1.1 #412 (dbaggott)
  • Makes code examples have color #396 (spuder)
  • Updates docs to show package are now default install #395 (spuder)
  • Update the README to remove a typo #381 (jtwarren)
  • Correct the full changelog links #375 (eheydrick)
  • add missing matchers #368 (thomasdziedzic)
  • Adds integration test for plugins in default environment #361 (bwvoss)

2.1.0 (2015-12-01)

  • ES 2.1.0 support #402

2.0.1 (2015-12-01)

  • Any provision to make it Chef 11.10 compatible? #401
  • gateway.expected_nodes default should be 0 #399
  • Add the defaults for slowlogs in logging.yml #398

2.0.0 (2015-11-23)

  • Upgrading by package needs cleanup #331
  • Minimal init scripts, preferrably from the packaged versions of ES #321
  • Remove extra env file, or follow packaged conventions #320
  • Remove system limit adjustments #319
  • Init script can't start #390
  • elasticsearch_service resource doesn't work with short syntax #397
  • What is supposed to happen when a config file is changed? #394
  • Doc request - how to create data nodes vs master nodes #393
  • Plugin install isn't idempotent #392
  • Question - Are custom configs required everywhere? #391
  • Is :tarball or :package the preferred installation type? #389
  • Support Amazon platform for init scripts #387
  • "ArgumentError: wrong number of arguments (1 for 0)" at resource_configure.rb #386
  • Do I need to do a Java Installation myself for this to work? #385
  • plugin install does not work #382
  • Allow template cookbook override in _configure #376
  • Consider using the resource name as a common shared set of resources #373
  • Recreate deploying-elasticsearch-with-chef tutorial #293
  • Makes code examples have color #396 (spuder)
  • Updates docs to show package are now default install #395 (spuder)

1.2.0 (2015-10-16)

  • Compile error w/ 1.0.3 and Chef Server 12 #379
  • OS X Support #358
  • Dealing with plugin versions that don't match, Elasticsearch failing to start #330
  • ruby command not found #378
  • Update the README to remove a typo #381 (jtwarren)
  • Correct the full changelog links #375 (eheydrick)

1.0.3 (2015-09-20)

  • 1.0.2 Issues with pid files #374

1.0.2 (2015-09-20)

  • enhancement : attribut path_xxx and path.xxx #352
  • It would be nice to be able to pass options to elasticsearch_service #334
  • elasticsearch_install broken with v1.0.1 #371
  • Compile Error #370
  • wrong number of arguments (1 for 0) #369
  • missing chef resource expectations in specs in 1.0.1 #367
  • Rubocop & foodcritic cleanup #365
  • add missing matchers #368 (thomasdziedzic)

1.0.1 (2015-09-15)

  • Plugin resource's plugin_dir should have a sensible default #345
  • Elasticsearch user homedir deleted #328
  • Use predictable attributes/values for version, download URL, and checksum #366
  • elasticsearch_plugin installs plugins with the wrong permissions #363
  • Double-dependency on curl #360
  • poise dependency not found #356
  • Documentation for using JSON node configuration #355
  • Hardcoded checksums in library helpers #350
  • Document default values for all resources #348
  • 1.0 should have sensible documentation #344
  • Adds integration test for plugins in default environment #361 (bwvoss)
  • Clarify when overriding plugin_dir is necessary #349 (michaelklishin)
  • Remove duplicate node.max_local_storage_nodes setting from the config template #346 (eheydrick)

v1.0.0 (2015-07-16)

  • Rename source method of install #332
  • NEXT: Document the process for submitting PRs #270
  • Travis CI not running on PRs from local branches #337
  • Error executing action install on resource 'elasticsearch_install' #335
  • Document requirement on Chef 12+ #338
  • Add lots of additional documentation #343 (martinb3)
  • Add contribution guidelines #342 (martinb3)
  • Run CI on master branch again, after rename #341 (martinb3)
  • Rename provider source to tarball #340 (martinb3)

v0.3.14 (2015-07-16)

  • NEXT: Model YML config after 'trim' config #322
  • NEXT: Create a user resource and provider #269
  • If bootstrap.mlockall is true, MAX_LOCKED_MEMORY should be set to unlimited in elasticsearch-env.sh #266
  • Installation enhancement #222
  • Plugins defined in databag do not get installed #89
  • There is no customize recipe #326
  • ES not starting when setting version to 1.5.2 or 1.6.0 #325
  • Question - Does cookbook support rolling restarts? #315
  • Loading attributes from the data DBI #313
  • 0.3.13: service doesn't successfully start #312
  • Restart doesn't work the first time if a stale PID exists #310
  • Cannot install plugin 2.4.1 #308
  • Proxy recipe should include nginx only based on configurabe attribute #307
  • Queue capacity #301
  • strange behavior with docker :bug: #300
  • Vagrant: Undefined method 'provider' #298
  • Error after upgrading the cookbook #297
  • Setting version triggers java.lang.NoClassDefFoundError #296
  • Elasticsearch running but not from service #290
  • Elasticsearch throws ElasticsearchIllegalStateException on boot (time based instance) #288
  • Prefix Definitions #285
  • strange thinks happend if I override elasticsearch version #283
  • Chef::Mixin::Template::TemplateError on new ssl attributes #281
  • The 0.3.13 release is missing the metadata.rb file #279
  • berks upload fails due to .DS_Store files found in 0.3.12 package on supermarket.chef.io #278
  • 0.3.11 release #277
  • Berkshelf treats 'recommends' as 'depends' #275
  • Init Script + Existing PID File #274
  • Version change doesn't work #273
  • Please add an option to specify the desired shell to pass to the su command #260
  • Attaching EBS takes a very long time and doesn't finish? #259
  • 1.3.4 startup hangs for 10min and fails #257
  • Plugin installation skipping #252
  • Can't get Rake task to work (either dependencies or installing Berkshelf) #244
  • Don't include build-essential just to be sure apt is up to date #241
  • how to specify max_map_count? #239
  • Nginx HTTP, Basic Auth and multiple nodes #238
  • Installing Marvel #237
  • Need help with creating EBS Volume #223
  • If elasticsearch fails to extract, it won't be installed later #221
  • uninitialized constant Extensions during Vagrant provisioning #212
  • config.vm.provider not recognised using Vagrant 1.5.4 #207
  • The Vagrant installation instructions are outdated #206
  • How to specify path.data and path.logs? #202
  • Cannot upgrade from 0.0.92 to 1.0.1 #197
  • install_plugin fails to run on initial install #176
  • EBS volume clean up #172
  • Cookbook default attributes get lifted to normal priority #168
  • Fog doesn't respect "delete_on_termination" option in elasticsearch::ebs #146
  • Use package options on both providers #336 (martinb3)
  • allow options passing to package provider #329 (scalp42)
  • set default resource actions #327 (nathwill)
  • Add a note about next branch #324 (martinb3)
  • Introduce provider and resource for configure #316 (martinb3)
  • First pass at install resource and two providers #309 (martinb3)

v0.3.13 (2015-01-13)

0.3.12 (2015-01-13)

  • Guidance On Upgrading A Running ES Installation #271
  • Supermarket release? #262
  • version check always adds '-d' flag incorrectly. #255
  • Version 0.3.11 not available on supermarket #250
  • Missed multicast settings in template #248
  • Data bags for test? #246
  • Introduce user provider and resource #268 (martinb3)
  • First pass at framework with testing, rake, etc #249 (martinb3)

0.3.11 (2014-10-13)

  • The init script should use the Chef embedded Ruby? #215
  • Quick Fix for version update issues #178
  • Don't seem to be able to change the version #100
  • Multiple EBS mounting #232
  • Just changing elasticsearch version attribute doesn't install intended version #225
  • plugins not being loaded #171

0.3.10 (2014-06-19)

  • Single node cofiguration #220
  • can we use apt_repository resource to install a particular version #217
  • Version attribute effect on download_url is misleading #214
  • Make config template configurable #153

0.3.9 (2014-05-22)

  • 1.1.1 doesn't work #210
  • Why does this cookbook set the es max heap size to 60% of available memory? #209
  • Failure when adding elasticsearch service #204
  • New release? #203

0.3.8 (2014-03-27)

  • Avoid using recommends "monit" in metadata.rb #162
  • Problem with ownership of pid in /var/run/ on restart of ubuntu #108
  • SSL support with Nginx proxy #226
  • Compatibility with 1.0.1 #195
  • pid_path is owned by elasticsearch #193
  • [Install plugin: merge!] (elasticsearch::plugins line 35) #187
  • Cookbook doesn't work with 1.0.0RCx versions - Startup broken based on behavior change #185
  • Failure to locate 'elasticsearch.conf.erb' template #184
  • Question on attributes "methodology" #180
  • print_value docs don't mention elasticsearch #169
  • update readme file with default attributes #166
  • Index template config files #164
  • Issues configuring unicast cluster #158
  • elasticsearch default /usr/local/elasticsearch is no good for elasticsearch-env.sh #157

0.3.7 (2013-10-28)

0.3.5 (2013-10-27)

  • ES Logging Not Working #151
  • Adding Debian specific init script #98 (remkade)

0.3.4 (2013-10-01)

  • first install with plugins fails #138
  • Custom Params for init.d start #134
  • elasticsearch-cloud-aws plugin - fails to install, restarts service anyway #131
  • init script - improvements needed #130
  • Configure HTTP port range #129
  • Elasticsearch fails to start with 0.90.3 and cloud-aws 1.12.0 #126
  • Install plugin failure does not stop script execution #124
  • search_discovery causes unnecessary restarts #122
  • chef-solo needs the 'cookbook' folder to have the same name as the cookbook #121
  • Plugins not working if aws recipe is used #105

0.3.3 (2013-08-01)

  • BREAKING: Fog version does not create EBS volumes properly #94
  • ulimit settings not used with start-stop-daemon #109
  • mismatch in aws endpoint attributes #106
  • Elasticsearch service restart at each chef run #104
  • Installation fails: Error executing action start on resource 'service[elasticsearch]' #96

0.3.2 (2013-08-01)

  • role attributes ignored? #112
  • Mismatched Data Dir permissions #111
  • Changing nofile attribute is not idempotent #101
  • Configure unicast_hosts dynamically on non-AWS clusters via search #40

0.3.1 (2013-06-18)

0.3.0 (2013-06-10)

  • Fog >= 1.11.0 breaks run with elasticsearch::ebs #93
  • elasticsearch::ebs fails if apt package cache is out of date #88
  • Document bare minimum configuration for default recipe #87
  • Centos 5 / RHEL 5 Support #86
  • Proxy recipe has hardcoded localhost which fails if elasticsearch is not bound to that IP #85
  • AJAX requests and nginx proxy #84
  • Readme link to Chef-solo+elasticsearch tutorial doesn't work #83
  • You must set ES_CLASSPATH var #82
  • Setting a custom installation directory doesn't work #79

0.2.7 (2013-03-18)

0.2.6 (2013-03-08)

  • Broken attempted aws plugin installation by default #76
  • Using setup with ELB #70

0.2.5 (2013-03-01)

  • Elasticsearch with node.client set to true #71

0.2.4 (2013-02-27)

0.2.3 (2013-02-27)

  • When updating versions, the wrong version can be installed unless you manually clear node attributes (chef server only) #69
  • The version of elasticsearch can only be set via elasticsearch/settings databag #68

0.2.2 (2013-02-26)

0.2.1 (2013-02-26)

  • Unable to change elasticsearch version via role and version tag #61
  • Creating new ebs volume is taking forever #60

0.2.0 (2013-02-01)

  • Failing installation test on master #56
  • Error message when running start script #48

0.1.0 (2013-01-28)

0.0.1 (2013-01-28)

  • Update Gists for Ark change #28
  • Conflict with nginx cookbook #46
  • version bump the metadata #42
  • elasticsearch::test doesn't work in ec2 with chef server #41
  • Nginx rpm install doesn't support chunkin module #38

0.0.6 (2013-01-15)

  • Cannot find a resource for create_ebs on amazon version 2012.09 #44

0.0.5 (2012-12-20)

  • Add discovery.ec2.tag and similar to elasticsearch.yml #36
  • Add support for setting cloud.aws.region using node.json #33
  • Elasticsearch doesn't start after run 'sudo chef-client' over knife ssh #32
  • Can't find Monit template? #29
  • Monit doesn't start after machine reboot #14
  • Probable bugs in install_plugin.rb #12

0.0.4 (2012-10-15)

0.0.3 (2012-10-14)

  • min_mem should be the same as max_mem #35
  • The elasticsearch::proxy\_nginx should declare dependency on nginx cookbook #24
  • Appears to install nginx even in cases when it's not requested (no proxy) #23

0.0.2 (2012-08-18)

  • -Xss128k is too low #25
  • Ubuntu Tests Failing #22
  • getting an error trying to install plugin #21
  • you must set ES_CLASSPATH #20
  • Need a more comprehensive max_mem calculation #15
  • Missing support for status command of the elasticsearch service #11
  • Discovery settings in elasticsearch.yml.erb #9
  • Monit issues (template file name, internal issues) #8
  • Align elasticsearch-env.sh.erb with elasticsearch.in.sh #3

Collaborator Number Metric
            

3.0.2 passed this metric

Foodcritic Metric
            

3.0.2 failed this metric

FC057: Library provider does not declare use_inline_resources: /tmp/fac4cb663e72c3ac213b3b37/elasticsearch/libraries/provider_configure.rb:2
FC057: Library provider does not declare use_inline_resources: /tmp/fac4cb663e72c3ac213b3b37/elasticsearch/libraries/provider_install.rb:4
FC057: Library provider does not declare use_inline_resources: /tmp/fac4cb663e72c3ac213b3b37/elasticsearch/libraries/provider_plugin.rb:2
FC057: Library provider does not declare use_inline_resources: /tmp/fac4cb663e72c3ac213b3b37/elasticsearch/libraries/provider_service.rb:2
FC057: Library provider does not declare use_inline_resources: /tmp/fac4cb663e72c3ac213b3b37/elasticsearch/libraries/provider_user.rb:2
Run with Foodcritic Version 8.1.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any