vend/puppet-elasticsearch

Elasticsearch Puppet module

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 38 minutes ago
Added to GitGenius on June 22nd, 2026
Created on March 27th, 2015
Open Issues & Pull Requests: 0 (+0)
GitHub issues: Disabled - open counts may still include pull requests.
Number of forks: 0
Total Stargazers: 1 (+0)
Total Subscribers: 0 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

GitHub issues are disabled for this repository, so issue analytics and the issue explorer are not available.

Detailed Description

The vend/puppet-elasticsearch repository is a Puppet module written in Ruby that automates the deployment and configuration of Elasticsearch instances. The module has been moved to the vend/puppet repository, as noted in the README.

The primary purpose of this module is to manage Elasticsearch installations through Puppet's infrastructure-as-code approach. It handles a comprehensive range of Elasticsearch components including repository files, package installation, configuration files, service management, plugins, templates, ingest pipelines, index settings, Shield/X-Pack users and roles, and keystores. The module is actively tested against Elasticsearch versions 2.x, 5.x, and 6.x, ensuring compatibility across multiple major releases.

The module requires several dependencies to function properly. Core requirements include the stdlib Puppet library, the richardc/datacat module, Augeas, and puppetlabs-java_ks for Shield/X-Pack certificate management. For repository management specifically, additional dependencies are needed depending on the operating system: Puppetlabs/apt for Debian/Ubuntu systems and Darin/zypprepo for OpenSuSE/SLES systems. The module also assumes Java is installed on the target systems and recommends using the puppetlabs-java module for Java management.

The module operates on the concept of instances, allowing multiple Elasticsearch instances to run on a single host. Each instance can have its own data directory and node naming conventions. Configuration is highly flexible, supporting parameters that can be set at the top-level elasticsearch class and inherited by resources or overridden on a per-resource basis. This design makes the module particularly well-suited for integration with Hiera and Puppet Enterprise.

Plugin management is a significant feature of this module. It supports installing plugins from official Elasticsearch repositories, custom URLs, and GitHub sources. The module handles plugin versioning and upgrades, supporting multiple naming formats including elasticsearch/plugin/version for official plugins and groupId/artifactId/version for community plugins from Maven Central. Proxy support is included for environments requiring proxy authentication.

The module provides REST API integration for managing templates, ingest pipelines, and index settings directly through Elasticsearch's API. Templates can be added, replaced, or deleted using either file sources or inline content. Ingest pipelines follow similar patterns, allowing dynamic pipeline management. Index creation and deletion are supported with optional index settings configuration.

Service management is handled through SysV-style init and Systemd providers. The module allows configuration of JVM settings either through init defaults for Elasticsearch 1.x and 2.x or through jvm.options for version 5.x and later. Service restart behavior can be controlled globally or granularly through parameters like restart_config_change, restart_package_change, and restart_plugin_change.

Package installation can be accomplished through either repository management or remote package sources, supporting http, https, ftp, puppet://, and local file protocols. The module includes a connection validator resource that ensures instances are running before proceeding with subsequent actions, useful for orchestrating dependent configurations.

X-Pack and Shield support is included for managing file-based users, roles, and certificates, though the documentation notes this requires careful understanding of the associated caveats. The module's comprehensive feature set and flexible configuration options make it suitable for managing complex Elasticsearch deployments across diverse infrastructure environments.