Skip to content

Latest commit

 

History

History
2489 lines (1462 loc) · 63.3 KB

REFERENCE.md

File metadata and controls

2489 lines (1462 loc) · 63.3 KB

Reference

Table of Contents

Classes

  • elasticsearch: Manages the installation of Elasticsearch and related options.
  • elasticsearch::config: This class exists to coordinate all configuration related actions, functionality and logical units in a central place. It is not intended to
  • elasticsearch::license: A defined type to control Elasticsearch licenses.
  • elasticsearch::package: This class exists to coordinate all software package management related actions, functionality and logical units in a central place. It is n
  • elasticsearch::service: This class exists to coordinate all service management related actions, functionality and logical units in a central place. Note: "service

Defined types

Resource types

Functions

  • array_suffix: This function applies a suffix to all elements in an array. Examples: array_suffix(['a','b','c'], 'p') Will return: ['ap','bp','cp']
  • concat_merge: Merges two or more hashes together concatenating duplicate keys with array values and returns the resulting hash. For example: $hash1 =
  • deep_implode: Recursively flattens all keys of a hash into a dot-notated hash, deeply merging duplicate key values by natively combining them and returns t
  • es_plugin_name: Given a string, return the best guess at what the directory name will be for the given plugin. Any arguments past the first will be fallbacks
  • plugin_dir: Extracts the end plugin directory of the name

Data types

Classes

elasticsearch

Top-level Elasticsearch class which may manage installation of the Elasticsearch package, package repository, and other global options and parameters.

Examples

install Elasticsearch
class { 'elasticsearch': }
removal and decommissioning
class { 'elasticsearch':
  ensure => 'absent',
}
install everything but disable service(s) afterwards
class { 'elasticsearch':
  status => 'disabled',
}

Parameters

The following parameters are available in the elasticsearch class:

ensure

Data type: Enum['absent', 'present']

Controls if the managed resources shall be present or absent. If set to absent, the managed software packages will be uninstalled, and any traces of the packages will be purged as well as possible, possibly including existing configuration files. System modifications (if any) will be reverted as well as possible (e.g. removal of created users, services, changed log settings, and so on). This is a destructive parameter and should be used with care.

api_basic_auth_password

Data type: Optional[String]

Defines the default REST basic auth password for API authentication.

api_basic_auth_username

Data type: Optional[String]

Defines the default REST basic auth username for API authentication.

api_ca_file

Data type: Optional[String]

Path to a CA file which will be used to validate server certs when communicating with the Elasticsearch API over HTTPS.

api_ca_path

Data type: Optional[String]

Path to a directory with CA files which will be used to validate server certs when communicating with the Elasticsearch API over HTTPS.

api_host

Data type: String

Default host to use when accessing Elasticsearch APIs.

api_port

Data type: Integer[0, 65535]

Default port to use when accessing Elasticsearch APIs.

api_protocol

Data type: Enum['http', 'https']

Default protocol to use when accessing Elasticsearch APIs.

api_timeout

Data type: Integer

Default timeout (in seconds) to use when accessing Elasticsearch APIs.

autoupgrade

Data type: Boolean

If set to true, any managed package will be upgraded on each Puppet run when the package provider is able to find a newer version than the present one. The exact behavior is provider dependent (see {package, "upgradeable"}[http://j.mp/xbxmNP] in the Puppet documentation).

ca_certificate

Data type: Optional[Stdlib::Absolutepath]

Path to the trusted CA certificate to add to this node's Java keystore.

Default value: undef

certificate

Data type: Optional[Stdlib::Absolutepath]

Path to the certificate for this node signed by the CA listed in ca_certificate.

Default value: undef

config

Data type: Hash

Elasticsearch configuration hash.

configdir

Data type: Stdlib::Absolutepath

Directory containing the elasticsearch configuration. Use this setting if your packages deviate from the norm (/etc/elasticsearch)

configdir_recurselimit

Data type: Integer

Dictates how deeply the file copy recursion logic should descend when copying files from the configdir to instance configdirs.

daily_rolling_date_pattern

Data type: String

File pattern for the file appender log when file_rolling_type is 'dailyRollingFile'.

datadir

Data type: Elasticsearch::Multipath

Allows you to set the data directory of Elasticsearch.

default_logging_level

Data type: String

Default logging level for Elasticsearch.

Default value: $logging_level

defaults_location

Data type: Optional[Stdlib::Absolutepath]

Absolute path to directory containing init defaults file.

deprecation_logging

Data type: Boolean

Whether to enable deprecation logging. If enabled, deprecation logs will be saved to ${cluster.name}_deprecation.log in the Elasticsearch log folder.

deprecation_logging_level

Data type: String

Default deprecation logging level for Elasticsearch.

download_tool

Data type: Optional[String]

Command-line invocation with which to retrieve an optional package_url.

download_tool_insecure

Data type: Optional[String]

Command-line invocation with which to retrieve an optional package_url when certificate verification should be ignored.

download_tool_verify_certificates

Data type: Boolean

Whether or not to verify SSL/TLS certificates when retrieving package files using a download tool instead of a package management provider.

elasticsearch_group

Data type: String

The group Elasticsearch should run as. This also sets file group permissions.

elasticsearch_user

Data type: String

The user Elasticsearch should run as. This also sets file ownership.

file_rolling_type

Data type: Enum['dailyRollingFile', 'rollingFile', 'file']

Configuration for the file appender rotation. It can be 'dailyRollingFile', 'rollingFile' or 'file'. The first rotates by name, the second one by size or third don't rotate automatically.

homedir

Data type: Stdlib::Absolutepath

Directory where the elasticsearch installation's files are kept (plugins, etc.)

indices

Data type: Hash

Define indices via a hash. This is mainly used with Hiera's auto binding.

init_defaults

Data type: Hash

Defaults file content in hash representation.

init_defaults_file

Data type: Optional[String]

Defaults file as puppet resource.

init_template

Data type: String

Service file as a template.

jvm_options

Data type: Array[String]

Array of options to set in jvm_options.

keystore_password

Data type: Optional[String]

Password to encrypt this node's Java keystore.

Default value: undef

keystore_path

Data type: Optional[Stdlib::Absolutepath]

Custom path to the Java keystore file. This parameter is optional.

Default value: undef

license

Data type: Optional[Variant[String, Hash]]

Optional Elasticsearch license in hash or string form.

logdir

Data type: Stdlib::Absolutepath

Directory that will be used for Elasticsearch logging.

logging_config

Data type: Hash

Representation of information to be included in the log4j.properties file.

logging_file

Data type: Optional[String]

Instead of a hash, you may supply a puppet:// file source for the log4j.properties file.

logging_level

Data type: String

Default logging level for Elasticsearch.

logging_template

Data type: Optional[String]

Use a custom logging template - just supply the relative path, i.e. $module/elasticsearch/logging.yml.erb

manage_repo

Data type: Boolean

Enable repo management by enabling official Elastic repositories.

oss

Data type: Boolean

Whether to use the purely open source Elasticsearch package distribution.

package_dir

Data type: Stdlib::Absolutepath

Directory where packages are downloaded to.

package_dl_timeout

Data type: Integer

For http, https, and ftp downloads, you may set how long the exec resource may take.

package_name

Data type: String

Name Of the package to install.

package_provider

Data type: Enum['package']

Method to install the packages, currently only package is supported.

package_url

Data type: Optional[String]

URL of the package to download. This can be an http, https, or ftp resource for remote packages, or a puppet:// resource or file:/ for local packages

pid_dir

Data type: Optional[Stdlib::Absolutepath]

Directory where the elasticsearch process should write out its PID.

pipelines

Data type: Hash

Define pipelines via a hash. This is mainly used with Hiera's auto binding.

plugindir

Data type: Optional[Stdlib::Absolutepath]

Directory containing elasticsearch plugins. Use this setting if your packages deviate from the norm (/usr/share/elasticsearch/plugins)

plugins

Data type: Hash

Define plugins via a hash. This is mainly used with Hiera's auto binding.

private_key

Data type: Optional[Stdlib::Absolutepath]

Path to the key associated with this node's certificate.

Default value: undef

proxy_url

Data type: Optional[Stdlib::HTTPUrl]

For http and https downloads, you may set a proxy server to use. By default, no proxy is used. Format: proto://[user:pass@]server[:port]/

purge_configdir

Data type: Boolean

Purge the config directory of any unmanaged files.

purge_package_dir

Data type: Boolean

Purge package directory on removal

purge_secrets

Data type: Boolean

Whether or not keys present in the keystore will be removed if they are not present in the specified secrets hash.

repo_stage

Data type: Variant[Boolean, String]

Use stdlib stage setup for managing the repo instead of relationship ordering.

restart_on_change

Data type: Boolean

Determines if the application should be automatically restarted whenever the configuration, package, or plugins change. Enabling this setting will cause Elasticsearch to restart whenever there is cause to re-read configuration files, load new plugins, or start the service using an updated/changed executable. This may be undesireable in highly available environments. If all other restart_* parameters are left unset, the value of restart_on_change is used for all other restart_*_change defaults.

restart_config_change

Data type: Boolean

Determines if the application should be automatically restarted whenever the configuration changes. This includes the Elasticsearch configuration file, any service files, and defaults files. Disabling automatic restarts on config changes may be desired in an environment where you need to ensure restarts occur in a controlled/rolling manner rather than during a Puppet run.

Default value: $restart_on_change

restart_package_change

Data type: Boolean

Determines if the application should be automatically restarted whenever the package (or package version) for Elasticsearch changes. Disabling automatic restarts on package changes may be desired in an environment where you need to ensure restarts occur in a controlled/rolling manner rather than during a Puppet run.

Default value: $restart_on_change

restart_plugin_change

Data type: Boolean

Determines if the application should be automatically restarted whenever plugins are installed or removed. Disabling automatic restarts on plugin changes may be desired in an environment where you need to ensure restarts occur in a controlled/rolling manner rather than during a Puppet run.

Default value: $restart_on_change

roles

Data type: Hash

Define roles via a hash. This is mainly used with Hiera's auto binding.

rolling_file_max_backup_index

Data type: Integer

Max number of logs to store whern file_rolling_type is 'rollingFile'

rolling_file_max_file_size

Data type: String

Max log file size when file_rolling_type is 'rollingFile'

scripts

Data type: Hash

Define scripts via a hash. This is mainly used with Hiera's auto binding.

secrets

Data type: Optional[Hash]

Optional default configuration hash of key/value pairs to store in the Elasticsearch keystore file. If unset, the keystore is left unmanaged.

security_logging_content

Data type: Optional[String]

File content for x-pack logging configuration file (will be placed into log4j2.properties file).

security_logging_source

Data type: Optional[String]

File source for x-pack logging configuration file (will be placed into log4j2.properties).

service_name

Data type: String

Elasticsearch service name

service_provider

Data type: Enum['init', 'openbsd', 'openrc', 'systemd']

The service resource type provider to use when managing elasticsearch instances.

snapshot_repositories

Data type: Hash

Define snapshot repositories via a hash. This is mainly used with Hiera's auto binding.

ssl

Data type: Boolean

Whether to manage TLS certificates. Requires the ca_certificate, certificate, private_key and keystore_password parameters to be set.

status

Data type: Elasticsearch::Status

To define the status of the service. If set to enabled, the service will be run and will be started at boot time. If set to disabled, the service is stopped and will not be started at boot time. If set to running, the service will be run but will not be started at boot time. You may use this to start a service on the first Puppet run instead of the system startup. If set to unmanaged, the service will not be started at boot time and Puppet does not care whether the service is running or not. For example, this may be useful if a cluster management software is used to decide when to start the service plus assuring it is running on the desired node.

system_key

Data type: Optional[String]

Source for the x-pack system key. Valid values are any that are supported for the file resource source parameter.

systemd_service_path

Data type: Stdlib::Absolutepath

Path to the directory in which to install systemd service units.

templates

Data type: Hash

Define templates via a hash. This is mainly used with Hiera's auto binding.

users

Data type: Hash

Define templates via a hash. This is mainly used with Hiera's auto binding.

validate_tls

Data type: Boolean

Enable TLS/SSL validation on API calls.

version

Data type: Variant[String, Boolean]

To set the specific version you want to install.

elasticsearch::config

This class exists to coordinate all configuration related actions, functionality and logical units in a central place.

It is not intended to be used directly by external resources like node definitions or other modules.

 @author Gavin Williams [email protected]

Examples

importing this class into other classes to use its functionality:
class { 'elasticsearch::config': }

elasticsearch::license

A defined type to control Elasticsearch licenses.

Parameters

The following parameters are available in the elasticsearch::license class:

ensure

Data type: Enum['absent', 'present']

Controls whether the named pipeline should be present or absent in the cluster.

Default value: 'present'

api_basic_auth_password

Data type: Optional[String]

HTTP basic auth password to use when communicating over the Elasticsearch API.

Default value: $elasticsearch::api_basic_auth_password

api_basic_auth_username

Data type: Optional[String]

HTTP basic auth username to use when communicating over the Elasticsearch API.

Default value: $elasticsearch::api_basic_auth_username

api_ca_file

Data type: Optional[Stdlib::Absolutepath]

Path to a CA file which will be used to validate server certs when communicating with the Elasticsearch API over HTTPS.

Default value: $elasticsearch::api_ca_file

api_ca_path

Data type: Optional[Stdlib::Absolutepath]

Path to a directory with CA files which will be used to validate server certs when communicating with the Elasticsearch API over HTTPS.

Default value: $elasticsearch::api_ca_path

api_host

Data type: String

Host name or IP address of the ES instance to connect to.

Default value: $elasticsearch::api_host

api_port

Data type: Integer[0, 65535]

Port number of the ES instance to connect to

Default value: $elasticsearch::api_port

api_protocol

Data type: Enum['http', 'https']

Protocol that should be used to connect to the Elasticsearch API.

Default value: $elasticsearch::api_protocol

api_timeout

Data type: Integer

Timeout period (in seconds) for the Elasticsearch API.

Default value: $elasticsearch::api_timeout

content

Data type: Variant[String, Hash]

License content in hash or string form.

Default value: $elasticsearch::license

validate_tls

Data type: Boolean

Determines whether the validity of SSL/TLS certificates received from the Elasticsearch API should be verified or ignored.

Default value: $elasticsearch::validate_tls

elasticsearch::package

This class exists to coordinate all software package management related actions, functionality and logical units in a central place.

It is not intended to be used directly by external resources like node definitions or other modules.

Examples

importing this class by other classes to use its functionality:
class { 'elasticsearch::package': }

elasticsearch::service

This class exists to coordinate all service management related actions, functionality and logical units in a central place.

Note: "service" is the Puppet term and type for background processes in general and is used in a platform-independent way. E.g. "service" means "daemon" in relation to Unix-like systems.

Defined types

elasticsearch::index

A defined type to control Elasticsearch index-level settings.

Parameters

The following parameters are available in the elasticsearch::index defined type:

ensure

Data type: Enum['absent', 'present']

Controls whether the named pipeline should be present or absent in the cluster.

Default value: 'present'

api_basic_auth_password

Data type: Optional[String]

HTTP basic auth password to use when communicating over the Elasticsearch API.

Default value: $elasticsearch::api_basic_auth_password

api_basic_auth_username

Data type: Optional[String]

HTTP basic auth username to use when communicating over the Elasticsearch API.

Default value: $elasticsearch::api_basic_auth_username

api_ca_file

Data type: Optional[Stdlib::Absolutepath]

Path to a CA file which will be used to validate server certs when communicating with the Elasticsearch API over HTTPS.

Default value: $elasticsearch::api_ca_file

api_ca_path

Data type: Optional[Stdlib::Absolutepath]

Path to a directory with CA files which will be used to validate server certs when communicating with the Elasticsearch API over HTTPS.

Default value: $elasticsearch::api_ca_path

api_host

Data type: String

Host name or IP address of the ES instance to connect to.

Default value: $elasticsearch::api_host

api_port

Data type: Integer[0, 65535]

Port number of the ES instance to connect to

Default value: $elasticsearch::api_port

api_protocol

Data type: Enum['http', 'https']

Protocol that should be used to connect to the Elasticsearch API.

Default value: $elasticsearch::api_protocol

api_timeout

Data type: Integer

Timeout period (in seconds) for the Elasticsearch API.

Default value: $elasticsearch::api_timeout

settings

Data type: Hash

Index settings in hash form (typically nested).

Default value: {}

validate_tls

Data type: Boolean

Determines whether the validity of SSL/TLS certificates received from the Elasticsearch API should be verified or ignored.

Default value: $elasticsearch::validate_tls

elasticsearch::pipeline

This define allows you to insert, update or delete Elasticsearch index ingestion pipelines.

Pipeline content should be defined through the content parameter.

Parameters

The following parameters are available in the elasticsearch::pipeline defined type:

ensure

Data type: Enum['absent', 'present']

Controls whether the named pipeline should be present or absent in the cluster.

Default value: 'present'

content

Data type: Hash

Contents of the pipeline in hash form.

Default value: {}

api_basic_auth_password

Data type: Optional[String]

HTTP basic auth password to use when communicating over the Elasticsearch API.

Default value: $elasticsearch::api_basic_auth_password

api_basic_auth_username

Data type: Optional[String]

HTTP basic auth username to use when communicating over the Elasticsearch API.

Default value: $elasticsearch::api_basic_auth_username

api_ca_file

Data type: Optional[Stdlib::Absolutepath]

Path to a CA file which will be used to validate server certs when communicating with the Elasticsearch API over HTTPS.

Default value: $elasticsearch::api_ca_file

api_ca_path

Data type: Optional[Stdlib::Absolutepath]

Path to a directory with CA files which will be used to validate server certs when communicating with the Elasticsearch API over HTTPS.

Default value: $elasticsearch::api_ca_path

api_host

Data type: String

Host name or IP address of the ES instance to connect to.

Default value: $elasticsearch::api_host

api_port

Data type: Integer[0, 65535]

Port number of the ES instance to connect to

Default value: $elasticsearch::api_port

api_protocol

Data type: Enum['http', 'https']

Protocol that should be used to connect to the Elasticsearch API.

Default value: $elasticsearch::api_protocol

api_timeout

Data type: Integer

Timeout period (in seconds) for the Elasticsearch API.

Default value: $elasticsearch::api_timeout

validate_tls

Data type: Boolean

Determines whether the validity of SSL/TLS certificates received from the Elasticsearch API should be verified or ignored.

Default value: $elasticsearch::validate_tls

elasticsearch::plugin

This define allows you to install arbitrary Elasticsearch plugins either by using the default repositories or by specifying an URL

Examples

install from official repository
elasticsearch::plugin {'mobz/elasticsearch-head': module_dir => 'head'}
installation using a custom URL
elasticsearch::plugin { 'elasticsearch-jetty':
 module_dir => 'elasticsearch-jetty',
 url        => 'https://oss-es-plugins.s3.amazonaws.com/elasticsearch-jetty/elasticsearch-jetty-0.90.0.zip',
}

Parameters

The following parameters are available in the elasticsearch::plugin defined type:

ensure

Data type: Enum['absent', 'present']

Whether the plugin will be installed or removed. Set to 'absent' to ensure a plugin is not installed

Default value: 'present'

configdir

Data type: Stdlib::Absolutepath

Path to the elasticsearch configuration directory (ES_PATH_CONF) to which the plugin should be installed.

Default value: $elasticsearch::configdir

java_opts

Data type: Array[String]

Array of Java options to be passed to ES_JAVA_OPTS

Default value: []

java_home

Data type: Optional[Stdlib::Absolutepath]

Path to JAVA_HOME, if Java is installed in a non-standard location.

Default value: undef

module_dir

Data type: Optional[String]

Directory name where the module has been installed This is automatically generated based on the module name Specify a value here to override the auto generated value

Default value: undef

proxy_host

Data type: Optional[String]

Proxy host to use when installing the plugin

Default value: undef

proxy_password

Data type: Optional[String]

Proxy auth password to use when installing the plugin

Default value: undef

proxy_port

Data type: Optional[Integer[0, 65535]]

Proxy port to use when installing the plugin

Default value: undef

proxy_username

Data type: Optional[String]

Proxy auth username to use when installing the plugin

Default value: undef

source

Data type: Optional[String]

Specify the source of the plugin. This will copy over the plugin to the node and use it for installation. Useful for offline installation

Default value: undef

url

Data type: Optional[Stdlib::HTTPUrl]

Specify an URL where to download the plugin from.

Default value: undef

elasticsearch::role

Manage x-pack roles.

Examples

create and manage the role 'power_user' mapped to an LDAP group.
elasticsearch::role { 'power_user':
  privileges => {
    'cluster' => 'monitor',
    'indices' => {
      '*' => 'all',
    },
  },
  mappings => [
    "cn=users,dc=example,dc=com",
  ],
}

Parameters

The following parameters are available in the elasticsearch::role defined type:

ensure

Data type: Enum['absent', 'present']

Whether the role should be present or not. Set to 'absent' to ensure a role is not present.

Default value: 'present'

mappings

Data type: Array

A list of optional mappings defined for this role.

Default value: []

privileges

Data type: Hash

A hash of permissions defined for the role. Valid privilege settings can be found in the x-pack documentation.

Default value: {}

elasticsearch::script

This define allows you to insert, update or delete scripts that are used within Elasticsearch.

Parameters

The following parameters are available in the elasticsearch::script defined type:

ensure

Data type: String

Controls the state of the script file resource to manage. Values are simply passed through to the file resource.

Default value: 'present'

recurse

Data type: Optional[Variant[Boolean, Enum['remote']]]

Will be passed through to the script file resource.

Default value: undef

source

Data type: String

Puppet source of the script

elasticsearch::snapshot_repository

This define allows you to insert, update or delete Elasticsearch snapshot repositories.

Parameters

The following parameters are available in the elasticsearch::snapshot_repository defined type:

ensure

Data type: Enum['absent', 'present']

Controls whether the named index template should be present or absent in the cluster.

Default value: 'present'

api_basic_auth_password

Data type: Optional[String]

HTTP basic auth password to use when communicating over the Elasticsearch API.

Default value: $elasticsearch::api_basic_auth_password

api_basic_auth_username

Data type: Optional[String]

HTTP basic auth username to use when communicating over the Elasticsearch API.

Default value: $elasticsearch::api_basic_auth_username

api_ca_file

Data type: Optional[Stdlib::Absolutepath]

Path to a CA file which will be used to validate server certs when communicating with the Elasticsearch API over HTTPS.

Default value: $elasticsearch::api_ca_file

api_ca_path

Data type: Optional[Stdlib::Absolutepath]

Path to a directory with CA files which will be used to validate server certs when communicating with the Elasticsearch API over HTTPS.

Default value: $elasticsearch::api_ca_path

api_host

Data type: String

Host name or IP address of the ES instance to connect to.

Default value: $elasticsearch::api_host

api_port

Data type: Integer[0, 65535]

Port number of the ES instance to connect to

Default value: $elasticsearch::api_port

api_protocol

Data type: Enum['http', 'https']

Protocol that should be used to connect to the Elasticsearch API.

Default value: $elasticsearch::api_protocol

api_timeout

Data type: Integer

Timeout period (in seconds) for the Elasticsearch API.

Default value: $elasticsearch::api_timeout

repository_type

Data type: Optional[String]

Snapshot repository type.

Default value: undef

location

Data type: String

Location of snapshots. Mandatory

compress

Data type: Boolean

Compress the snapshot metadata files?

Default value: true

chunk_size

Data type: Optional[String]

Chunk size to break big files down into.

Default value: undef

max_restore_rate

Data type: Optional[String]

Throttle value for node restore rate.

Default value: undef

max_snapshot_rate

Data type: Optional[String]

Throttle value for node snapshot rate.

Default value: undef

validate_tls

Data type: Boolean

Determines whether the validity of SSL/TLS certificates received from the Elasticsearch API should be verified or ignored.

Default value: $elasticsearch::validate_tls

elasticsearch::template

This define allows you to insert, update or delete Elasticsearch index templates.

Template content should be defined through either the content parameter (when passing a hash or json string) or the source parameter (when passing the puppet file URI to a template json file).

Parameters

The following parameters are available in the elasticsearch::template defined type:

ensure

Data type: Enum['absent', 'present']

Controls whether the named index template should be present or absent in the cluster.

Default value: 'present'

api_basic_auth_password

Data type: Optional[String]

HTTP basic auth password to use when communicating over the Elasticsearch API.

Default value: $elasticsearch::api_basic_auth_password

api_basic_auth_username

Data type: Optional[String]

HTTP basic auth username to use when communicating over the Elasticsearch API.

Default value: $elasticsearch::api_basic_auth_username

api_ca_file

Data type: Optional[Stdlib::Absolutepath]

Path to a CA file which will be used to validate server certs when communicating with the Elasticsearch API over HTTPS.

Default value: $elasticsearch::api_ca_file

api_ca_path

Data type: Optional[Stdlib::Absolutepath]

Path to a directory with CA files which will be used to validate server certs when communicating with the Elasticsearch API over HTTPS.

Default value: $elasticsearch::api_ca_path

api_host

Data type: String

Host name or IP address of the ES instance to connect to.

Default value: $elasticsearch::api_host

api_port

Data type: Integer[0, 65535]

Port number of the ES instance to connect to

Default value: $elasticsearch::api_port

api_protocol

Data type: Enum['http', 'https']

Protocol that should be used to connect to the Elasticsearch API.

Default value: $elasticsearch::api_protocol

api_timeout

Data type: Integer

Timeout period (in seconds) for the Elasticsearch API.

Default value: $elasticsearch::api_timeout

content

Data type: Optional[Variant[String, Hash]]

Contents of the template. Can be either a puppet hash or a string containing JSON.

Default value: undef

source

Data type: Optional[String]

Source path for the template file. Can be any value similar to source values for file resources.

Default value: undef

validate_tls

Data type: Boolean

Determines whether the validity of SSL/TLS certificates received from the Elasticsearch API should be verified or ignored.

Default value: $elasticsearch::validate_tls

elasticsearch::user

Manages x-pack users.

Examples

creates and manage a user with membership in the 'logstash' and 'kibana4' roles.
elasticsearch::user { 'bob':
  password => 'foobar',
  roles    => ['logstash', 'kibana4'],
}

Parameters

The following parameters are available in the elasticsearch::user defined type:

ensure

Data type: Enum['absent', 'present']

Whether the user should be present or not. Set to absent to ensure a user is not installed

Default value: 'present'

password

Data type: String

Password for the given user. A plaintext password will be managed with the esusers utility and requires a refresh to update, while a hashed password from the esusers utility will be managed manually in the uses file.

roles

Data type: Array

A list of roles to which the user should belong.

Default value: []

Resource types

elasticsearch_index

Manages Elasticsearch index settings.

Properties

The following properties are available in the elasticsearch_index type.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

settings

Structured settings for the index in hash form.

Parameters

The following parameters are available in the elasticsearch_index type.

name

namevar

Index name.

provider

The specific backend to use for this elasticsearch_index resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

elasticsearch_keystore

Manages an Elasticsearch keystore settings file.

Properties

The following properties are available in the elasticsearch_keystore type.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

settings

A key/value hash of settings names and values.

Parameters

The following parameters are available in the elasticsearch_keystore type.

configdir

Path to the elasticsearch configuration directory (ES_PATH_CONF).

Default value: /etc/elasticsearch

instance

Elasticsearch instance this keystore belongs to.

provider

The specific backend to use for this elasticsearch_keystore resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

purge

Valid values: true, false, yes, no

Whether to proactively remove settings that exist in the keystore but are not present in this resource's settings.

Default value: false

elasticsearch_license

Manages Elasticsearch licenses.

Properties

The following properties are available in the elasticsearch_license type.

content

Structured hash for license content data.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

Parameters

The following parameters are available in the elasticsearch_license type.

name

namevar

Pipeline name.

provider

The specific backend to use for this elasticsearch_license resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

elasticsearch_pipeline

Manages Elasticsearch ingest pipelines.

Properties

The following properties are available in the elasticsearch_pipeline type.

content

Structured content of pipeline.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

Parameters

The following parameters are available in the elasticsearch_pipeline type.

name

namevar

Pipeline name.

provider

The specific backend to use for this elasticsearch_pipeline resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

elasticsearch_plugin

Plugin installation type

Properties

The following properties are available in the elasticsearch_plugin type.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

Parameters

The following parameters are available in the elasticsearch_plugin type.

configdir

Path to the elasticsearch configuration directory (ES_PATH_CONF).

Default value: /etc/elasticsearch

elasticsearch_package_name

Name of the system Elasticsearch package.

java_home

Optional string to set the environment variable JAVA_HOME.

java_opts

Optional array of Java options for ES_JAVA_OPTS.

Default value: []

name

namevar

An arbitrary name used as the identity of the resource.

plugin_dir

Path to the Plugins directory

Default value: /usr/share/elasticsearch/plugins

plugin_path

Override name of the directory created for the plugin

provider

The specific backend to use for this elasticsearch_plugin resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

proxy

Proxy Host

source

Source of the package. puppet:// or file:// resource

url

Url of the package

elasticsearch_role

Type to model Elasticsearch roles.

Properties

The following properties are available in the elasticsearch_role type.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

privileges

Security privileges of the given role.

Parameters

The following parameters are available in the elasticsearch_role type.

name

Valid values: %r{^[a-zA-Z_]{1}[-\w@.$]{0,39}$}

namevar

Role name.

provider

The specific backend to use for this elasticsearch_role resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

elasticsearch_role_mapping

Type to model Elasticsearch role mappings.

Properties

The following properties are available in the elasticsearch_role_mapping type.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

mappings

List of role mappings.

Parameters

The following parameters are available in the elasticsearch_role_mapping type.

name

Valid values: %r{^[a-zA-Z_]{1}[-\w@.$]{0,39}$}

namevar

Role name.

provider

The specific backend to use for this elasticsearch_role_mapping resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

elasticsearch_snapshot_repository

Manages Elasticsearch snapshot repositories.

Properties

The following properties are available in the elasticsearch_snapshot_repository type.

chunk_size

File chunk size

compress

Compress the repository data

Default value: true

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

location

Repository location

max_restore_rate

Maximum Restore rate

max_snapshot_rate

Maximum Snapshot rate

Parameters

The following parameters are available in the elasticsearch_snapshot_repository type.

name

namevar

Repository name.

provider

The specific backend to use for this elasticsearch_snapshot_repository resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

type

Repository type

Default value: fs

elasticsearch_template

Manages Elasticsearch index templates.

Properties

The following properties are available in the elasticsearch_template type.

content

Structured content of template.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

Parameters

The following parameters are available in the elasticsearch_template type.

name

namevar

Template name.

provider

The specific backend to use for this elasticsearch_template resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

source

Puppet source to file containing template contents.

elasticsearch_user

Type to model Elasticsearch users.

Properties

The following properties are available in the elasticsearch_user type.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

Parameters

The following parameters are available in the elasticsearch_user type.

configdir

Path to the elasticsearch configuration directory (ES_PATH_CONF).

name

namevar

User name.

password

Plaintext password for user.

Required features: manages_plaintext_passwords.

provider

The specific backend to use for this elasticsearch_user resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

elasticsearch_user_file

Type to model Elasticsearch users.

Properties

The following properties are available in the elasticsearch_user_file type.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

hashed_password

Valid values: %r{^[$]2a[$].{56}$}

Hashed password for user.

Parameters

The following parameters are available in the elasticsearch_user_file type.

configdir

Path to the elasticsearch configuration directory (ES_PATH_CONF).

name

namevar

User name.

provider

The specific backend to use for this elasticsearch_user_file resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

elasticsearch_user_roles

Type to model Elasticsearch user roles.

Properties

The following properties are available in the elasticsearch_user_roles type.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

roles

Array of roles that the user should belong to.

Parameters

The following parameters are available in the elasticsearch_user_roles type.

name

namevar

User name.

provider

The specific backend to use for this elasticsearch_user_roles resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

es_instance_conn_validator

Verify that a connection can be successfully established between a node and Elasticsearch. It could potentially be used for other purposes such as monitoring.

Properties

The following properties are available in the es_instance_conn_validator type.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

Parameters

The following parameters are available in the es_instance_conn_validator type.

name

namevar

An arbitrary name used as the identity of the resource.

port

The port that the Elasticsearch instance should be listening on.

Default value: 9200

provider

The specific backend to use for this es_instance_conn_validator resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

server

DNS name or IP address of the server where Elasticsearch should be running.

Default value: localhost

sleep_interval

The number of seconds that the validator should wait before retrying the connection to Elasticsearch; defaults to 10 seconds.

Default value: 10

timeout

The max number of seconds that the validator should wait before giving up and deciding that Elasticsearch is not running; defaults to 60 seconds.

Default value: 60

Functions

array_suffix

Type: Ruby 3.x API

This function applies a suffix to all elements in an array.

Examples:

array_suffix(['a','b','c'], 'p')

Will return: ['ap','bp','cp']

array_suffix()

This function applies a suffix to all elements in an array.

Examples:

array_suffix(['a','b','c'], 'p')

Will return: ['ap','bp','cp']

Returns: Any Array

concat_merge

Type: Ruby 3.x API

Merges two or more hashes together concatenating duplicate keys with array values and returns the resulting hash.

For example:

$hash1 = {'a' => [1]}
$hash2 = {'a' => [2]}
concat_merge($hash1, $hash2)
# The resulting hash is equivalent to:
# { 'a' => [1, 2] }

When there is a duplicate key that is not an array, the key in the rightmost hash will "win."

concat_merge()

Merges two or more hashes together concatenating duplicate keys with array values and returns the resulting hash.

For example:

$hash1 = {'a' => [1]}
$hash2 = {'a' => [2]}
concat_merge($hash1, $hash2)
# The resulting hash is equivalent to:
# { 'a' => [1, 2] }

When there is a duplicate key that is not an array, the key in the rightmost hash will "win."

Returns: Any String

deep_implode

Type: Ruby 3.x API

Recursively flattens all keys of a hash into a dot-notated hash, deeply merging duplicate key values by natively combining them and returns the resulting hash.

That is confusing, look at the examples for more clarity.

For example:

$hash = {'top' => {'sub' => [1]}, 'top.sub' => [2] }
$flattened_hash = deep_implode($hash)
# The resulting hash is equivalent to:
# { 'top.sub' => [1, 2] }

When the function encounters array or hash values, they are concatenated or merged, respectively. When duplace paths for a key are generated, the function will prefer to retain keys with the longest root key.

deep_implode()

Recursively flattens all keys of a hash into a dot-notated hash, deeply merging duplicate key values by natively combining them and returns the resulting hash.

That is confusing, look at the examples for more clarity.

For example:

$hash = {'top' => {'sub' => [1]}, 'top.sub' => [2] }
$flattened_hash = deep_implode($hash)
# The resulting hash is equivalent to:
# { 'top.sub' => [1, 2] }

When the function encounters array or hash values, they are concatenated or merged, respectively. When duplace paths for a key are generated, the function will prefer to retain keys with the longest root key.

Returns: Any Hash

es_plugin_name

Type: Ruby 3.x API

Given a string, return the best guess at what the directory name will be for the given plugin. Any arguments past the first will be fallbacks (using the same logic) should the first fail.

For example, all the following return values are "plug":

es_plugin_name('plug')
es_plugin_name('foo/plug')
es_plugin_name('foo/plug/1.0.0')
es_plugin_name('foo/elasticsearch-plug')
es_plugin_name('foo/es-plug/1.3.2')

es_plugin_name()

Given a string, return the best guess at what the directory name will be for the given plugin. Any arguments past the first will be fallbacks (using the same logic) should the first fail.

For example, all the following return values are "plug":

es_plugin_name('plug')
es_plugin_name('foo/plug')
es_plugin_name('foo/plug/1.0.0')
es_plugin_name('foo/elasticsearch-plug')
es_plugin_name('foo/es-plug/1.3.2')

Returns: Any String

plugin_dir

Type: Ruby 3.x API

Extracts the end plugin directory of the name

plugin_dir()

Extracts the end plugin directory of the name

Returns: Any String

Data types

Elasticsearch::Multipath

The Elasticsearch::Multipath data type.

Alias of

Variant[Array[Stdlib::Absolutepath], Stdlib::Absolutepath]

Elasticsearch::Status

The Elasticsearch::Status data type.

Alias of

Enum['enabled', 'disabled', 'running', 'unmanaged']