# salt.modules.elasticsearch

Elasticsearch - A distributed RESTful search and analytics server

Module to provide Elasticsearch compatibility to Salt (compatible with Elasticsearch version 1.5.2+)

New in version 2015.8.0.

depends:

  elasticsearch-py

configuration:

  This module accepts connection configuration details either as parameters or as configuration settings in /etc/salt/minion on the relevant minions:

      elasticsearch:
        host: '10.10.10.100:9200'

      elasticsearch-cluster:
        hosts:
          - '10.10.10.100:9200'
          - '10.10.10.101:9200'
          - '10.10.10.102:9200'

      elasticsearch-extra:
        hosts:
          - '10.10.10.100:9200'
        use_ssl: True
        verify_certs: True
        ca_certs: /path/to/custom_ca_bundle.pem
        number_of_shards: 1
        number_of_replicas: 0
        functions_blacklist:
          - 'saltutil.find_job'
          - 'pillar.items'
          - 'grains.items'
        proxies:
          - http: http://proxy:3128
          - https: http://proxy:1080

  When specifying proxies the requests backend will be used and the 'proxies' data structure is passed as-is to that module.

  This data can also be passed into pillar. Options passed into opts will overwrite options passed into pillar.

  Some functionality might be limited by elasticsearch-py and Elasticsearch server versions.

salt.modules.elasticsearch.alias_create(indices, alias, hosts=None, body=None, profile=None, source=None)

  Create an alias for a specific index/indices

  indices

    Single or multiple indices separated by comma, use _all to perform the operation on all indices.

  alias

    Alias name

  body

    Optional definition such as routing or filter as defined in https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html

  source

    URL of file specifying optional definition such as routing or filter. Cannot be used in combination with `body`.

  CLI Example:

      salt myminion elasticsearch.alias_create testindex_v1 testindex

salt.modules.elasticsearch.alias_delete(indices, aliases, hosts=None, body=None, profile=None, source=None)

  Delete an alias of an index

  indices

    Single or multiple indices separated by comma, use _all to perform the operation on all indices.

  aliases

    Alias names separated by comma

  CLI Example:

      salt myminion elasticsearch.alias_delete testindex_v1 testindex

salt.modules.elasticsearch.alias_exists(aliases, indices=None, hosts=None, profile=None)

  Return a boolean indicating whether given alias exists

  indices

    Single or multiple indices separated by comma, use _all to perform the operation on all indices.

  aliases

    Alias names separated by comma

  CLI Example:

      salt myminion elasticsearch.alias_exists None testindex

salt.modules.elasticsearch.alias_get(indices=None, aliases=None, hosts=None, profile=None)

  Check for the existence of an alias and if it exists, return it

  indices

    Single or multiple indices separated by comma, use _all to perform the operation on all indices.

  aliases

    Alias names separated by comma

  CLI Example:

      salt myminion elasticsearch.alias_get testindex

salt.modules.elasticsearch.cluster_get_settings(flat_settings=False, include_defaults=False, hosts=None, profile=None)

  New in version 3000.

  Return Elasticsearch cluster settings.

  flat_settings

    Return settings in flat format.

  include_defaults

    Whether to return all default clusters setting.

  CLI Example:

      salt myminion elasticsearch.cluster_get_settings

salt.modules.elasticsearch.cluster_health(index=None, level='cluster', local=False, hosts=None, profile=None)

  New in version 2017.7.0.

  Return Elasticsearch cluster health.

  index

    Limit the information returned to a specific index

  level

    Specify the level of detail for returned information, default 'cluster', valid choices are: 'cluster', 'indices', 'shards'

  local

    Return local information, do not retrieve the state from master node

  CLI Example:

      salt myminion elasticsearch.cluster_health

salt.modules.elasticsearch.cluster_put_settings(body=None, flat_settings=False, hosts=None, profile=None)

  New in version 3000.

  Set Elasticsearch cluster settings.

  body

    The settings to be updated. Can be either 'transient' or 'persistent' (survives cluster restart) http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-update-settings.html

  flat_settings

    Return settings in flat format.

  CLI Example:

      salt myminion elasticsearch.cluster_put_settings '{"persistent": {"indices.recovery.max_bytes_per_sec": "50mb"}}'
      salt myminion elasticsearch.cluster_put_settings '{"transient": {"indices.recovery.max_bytes_per_sec": "50mb"}}'

salt.modules.elasticsearch.cluster_stats(nodes=None, hosts=None, profile=None)

  New in version 2017.7.0.

  Return Elasticsearch cluster stats.

  nodes

    List of cluster nodes (id or name) to display stats for. Use _local for connected node, empty for all

  CLI Example:

      salt myminion elasticsearch.cluster_stats

salt.modules.elasticsearch.document_create(index, doc_type, body=None, id=None, hosts=None, profile=None, source=None)

  Create a document in a specified index

  index

    Index name where the document should reside

  doc_type

    Type of the document

  body

    Document to store

  source

    URL of file specifying document to store. Cannot be used in combination with `body`.

  id

    Optional unique document identifier for specified doc_type (empty for random)

  CLI Example:

      salt myminion elasticsearch.document_create testindex doctype1 '{}'

salt.modules.elasticsearch.document_delete(index, doc_type, id, hosts=None, profile=None)

  Delete a document from an index

  index

    Index name where the document resides

  doc_type

    Type of the document

  id

    Document identifier

  CLI Example:

      salt myminion elasticsearch.document_delete testindex doctype1 AUx-384m0Bug_8U80wQZ

salt.modules.elasticsearch.document_exists(index, id, doc_type='_all', hosts=None, profile=None)

  Return a boolean indicating whether given document exists

  index

    Index name where the document resides

  id

    Document identifier

  doc_type

    Type of the document, use _all to fetch the first document matching the ID across all types

  CLI Example:

      salt myminion elasticsearch.document_exists testindex AUx-384m0Bug_8U80wQZ

salt.modules.elasticsearch.document_get(index, id, doc_type='_all', hosts=None, profile=None)

  Check for the existence of a document and if it exists, return it

  index

    Index name where the document resides

  id

    Document identifier

  doc_type

    Type of the document, use _all to fetch the first document matching the ID across all types

  CLI Example:

      salt myminion elasticsearch.document_get testindex AUx-384m0Bug_8U80wQZ

salt.modules.elasticsearch.flush_synced(hosts=None, profile=None, **kwargs)

  New in version 3000.

  Perform a normal flush, then add a generated unique marker (sync_id) to all shards. http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-synced-flush.html

  index

    (Optional, string) A comma-separated list of index names; use _all or empty string for all indices. Defaults to '_all'.

  ignore_unavailable

    (Optional, boolean) If true, missing or closed indices are not included in the response. Defaults to false.

  allow_no_indices

    (Optional, boolean) If true, the request does not return an error if a wildcard expression or _all value retrieves only missing or closed indices. This parameter also applies to index aliases that point to a missing or closed index.

  expand_wildcards

    (Optional, string) Controls what kind of indices that wildcard expressions can expand to.

    Valid values are:

        all - Expand to open and closed indices.
        open - Expand only to open indices.
        closed - Expand only to closed indices.
        none - Wildcard expressions are not accepted.

  The defaults settings for the above parameters depend on the API being used.

  CLI Example:

      salt myminion elasticsearch.flush_synced index='index1,index2' ignore_unavailable=True allow_no_indices=True expand_wildcards='all'

salt.modules.elasticsearch.index_close(index, allow_no_indices=True, expand_wildcards='open', ignore_unavailable=True, hosts=None, profile=None)

  New in version 2017.7.0.

  Close specified index.

  index

    Index to be closed

  allow_no_indices

    Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes _all string or when no indices have been specified)

  expand_wildcards

    Whether to expand wildcard expression to concrete indices that are open, closed or both., default ‘open’, valid choices are: ‘open’, ‘closed’, ‘none’, ‘all’

  ignore_unavailable

    Whether specified concrete indices should be ignored when unavailable (missing or closed)

  CLI Example:

      salt myminion elasticsearch.index_close testindex

salt.modules.elasticsearch.index_create(index, body=None, hosts=None, profile=None, source=None)

  Create an index

  index

    Index name

  body

    Index definition, such as settings and mappings as defined in https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html

  source

    URL to file specifying index definition. Cannot be used in combination with `body`.

  CLI Example:

      salt myminion elasticsearch.index_create testindex
      salt myminion elasticsearch.index_create testindex2 '{"settings" : {"index" : {"number_of_shards" : 3, "number_of_replicas" : 2}}}'

salt.modules.elasticsearch.index_delete(index, hosts=None, profile=None)

  Delete an index

  index

    Index name

  CLI Example:

      salt myminion elasticsearch.index_delete testindex

salt.modules.elasticsearch.index_exists(index, hosts=None, profile=None)

  Return a boolean indicating whether given index exists

  index

    Index name

  CLI Example:

      salt myminion elasticsearch.index_exists testindex

salt.modules.elasticsearch.index_get(index, hosts=None, profile=None)

  Check for the existence of an index and if it exists, return it

  index

    Index name

  CLI Example:

      salt myminion elasticsearch.index_get testindex

salt.modules.elasticsearch.index_get_settings(hosts=None, profile=None, **kwargs)

  New in version 3000.

  Check for the existence of an index and if it exists, return its settings http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-settings.html

  index

    (Optional, string) A comma-separated list of index names; use _all or empty string for all indices. Defaults to '_all'.

  name

    (Optional, string) The name of the settings that should be included

  allow_no_indices

    (Optional, boolean) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes _all string or when no indices have been specified)

  expand_wildcards

    (Optional, string) Whether to expand wildcard expression to concrete indices that are open, closed or both. Valid choices are: ‘open’, ‘closed’, ‘none’, ‘all’

  flat_settings

    (Optional, boolean) Return settings in flat format

  ignore_unavailable

    (Optional, boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)

  include_defaults

    (Optional, boolean) Whether to return all default setting for each of the indices.

  local

    (Optional, boolean) Return local information, do not retrieve the state from master node

  The defaults settings for the above parameters depend on the API version being used.

  CLI Example:

      salt myminion elasticsearch.index_get_settings index=testindex

salt.modules.elasticsearch.index_open(index, allow_no_indices=True, expand_wildcards='closed', ignore_unavailable=True, hosts=None, profile=None)

  New in version 2017.7.0.

  Open specified index.

  index

    Index to be opened

  allow_no_indices

    Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes _all string or when no indices have been specified)

  expand_wildcards

    Whether to expand wildcard expression to concrete indices that are open, closed or both., default ‘closed’, valid choices are: ‘open’, ‘closed’, ‘none’, ‘all’

  ignore_unavailable

    Whether specified concrete indices should be ignored when unavailable (missing or closed)

  CLI Example:

      salt myminion elasticsearch.index_open testindex

salt.modules.elasticsearch.index_put_settings(body=None, hosts=None, profile=None, source=None, **kwargs)

  New in version 3000.

  Update existing index settings https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html

  body

    The index settings to be updated.

  source

    URL to file specifying index definition. Cannot be used in combination with `body`.

  index

    (Optional, string) A comma-separated list of index names; use _all or empty string to perform the operation on all indices

  allow_no_indices

    (Optional, boolean) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes _all string or when no indices have been specified)

  expand_wildcards

    (Optional, string) Whether to expand wildcard expression to concrete indices that are open, closed or both. Valid choices are: ‘open’, ‘closed’, ‘none’, ‘all’

  flat_settings

    (Optional, boolean) Return settings in flat format (default: false)

  ignore_unavailable

    (Optional, boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)

  master_timeout

    (Optional, time units) Explicit operation timeout for connection to master node

  preserve_existing

    (Optional, boolean) Whether to update existing settings. If set to true existing settings on an index remain unchanged, the default is false

  The defaults settings for the above parameters depend on the API version being used.

  Note

  Elasticsearch time units can be found here: https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html#time-units

  CLI Example:

      salt myminion elasticsearch.index_put_settings index=testindex body='{"settings" : {"index" : {"number_of_replicas" : 2}}}'

salt.modules.elasticsearch.index_template_create(name, body=None, hosts=None, profile=None, source=None)

  Create an index template

  name

    Index template name

  body

    Template definition as specified in http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html

  source

    URL to file specifying template definition. Cannot be used in combination with `body`.

  CLI Example:

      salt myminion elasticsearch.index_template_create testindex_templ '{ "template": "logstash-*", "order": 1, "settings": { "number_of_shards": 1 } }'

salt.modules.elasticsearch.index_template_delete(name, hosts=None, profile=None)

  Delete an index template (type) along with its data

  name

    Index template name

  CLI Example:

      salt myminion elasticsearch.index_template_delete testindex_templ user

salt.modules.elasticsearch.index_template_exists(name, hosts=None, profile=None)

  Return a boolean indicating whether given index template exists

  name

    Index template name

  CLI Example:

      salt myminion elasticsearch.index_template_exists testindex_templ

salt.modules.elasticsearch.index_template_get(name, hosts=None, profile=None)

  Retrieve template definition of index or index/type

  name

    Index template name

  CLI Example:

      salt myminion elasticsearch.index_template_get testindex_templ

salt.modules.elasticsearch.info(hosts=None, profile=None)

  New in version 2017.7.0.

  Return Elasticsearch information.

  CLI Example:

      salt myminion elasticsearch.info
      salt myminion elasticsearch.info profile=elasticsearch-extra

salt.modules.elasticsearch.mapping_create(index, doc_type, body=None, hosts=None, profile=None, source=None)

  Create a mapping in a given index

  index

    Index for the mapping

  doc_type

    Name of the document type

  body

    Mapping definition as specified in https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html

  source

    URL to file specifying mapping definition. Cannot be used in combination with `body`.

  CLI Example:

      salt myminion elasticsearch.mapping_create testindex user '{ "user" : { "properties" : { "message" : {"type" : "string", "store" : true } } } }'

salt.modules.elasticsearch.mapping_delete(index, doc_type, hosts=None, profile=None)

  Delete a mapping (type) along with its data. As of Elasticsearch 5.0 this is no longer available.

  index

    Index for the mapping

  doc_type

    Name of the document type

  CLI Example:

      salt myminion elasticsearch.mapping_delete testindex user

salt.modules.elasticsearch.mapping_get(index, doc_type, hosts=None, profile=None)

  Retrieve mapping definition of index or index/type

  index

    Index for the mapping

  doc_type

    Name of the document type

  CLI Example:

      salt myminion elasticsearch.mapping_get testindex user

salt.modules.elasticsearch.node_info(nodes=None, flat_settings=False, hosts=None, profile=None)

  New in version 2017.7.0.

  Return Elasticsearch node information.

  nodes

    List of cluster nodes (id or name) to display stats for. Use _local for connected node, empty for all

  flat_settings

    Flatten settings keys

  CLI Example:

      salt myminion elasticsearch.node_info flat_settings=True

salt.modules.elasticsearch.ping(allow_failure=False, hosts=None, profile=None)

  New in version 2017.7.0.

  Test connection to Elasticsearch instance. This method does not fail if not explicitly specified.

  allow_failure

    Throw exception if ping fails

  CLI Example:

      salt myminion elasticsearch.ping allow_failure=True
      salt myminion elasticsearch.ping profile=elasticsearch-extra

salt.modules.elasticsearch.pipeline_create(id, body, hosts=None, profile=None)

  New in version 2017.7.0.

  Create Ingest pipeline by supplied definition. Available since Elasticsearch 5.0.

  id

    Pipeline id

  body

    Pipeline definition as specified in https://www.elastic.co/guide/en/elasticsearch/reference/master/pipeline.html

  CLI Example:

      salt myminion elasticsearch.pipeline_create mypipeline '{"description": "my custom pipeline", "processors": [{"set" : {"field": "collector_timestamp_millis", "value": "{{_ingest.timestamp}}"}}]}'

salt.modules.elasticsearch.pipeline_delete(id, hosts=None, profile=None)

  New in version 2017.7.0.

  Delete Ingest pipeline. Available since Elasticsearch 5.0.

  id

    Pipeline id

  CLI Example:

      salt myminion elasticsearch.pipeline_delete mypipeline

salt.modules.elasticsearch.pipeline_get(id, hosts=None, profile=None)

  New in version 2017.7.0.

  Retrieve Ingest pipeline definition. Available since Elasticsearch 5.0.

  id

    Pipeline id

  CLI Example:

      salt myminion elasticsearch.pipeline_get mypipeline

salt.modules.elasticsearch.pipeline_simulate(id, body, verbose=False, hosts=None, profile=None)

  New in version 2017.7.0.

  Simulate existing Ingest pipeline on provided data. Available since Elasticsearch 5.0.

  id

    Pipeline id

  body

    Pipeline definition as specified in https://www.elastic.co/guide/en/elasticsearch/reference/master/pipeline.html

  verbose

    Specify if the output should be more verbose

  CLI Example:

      salt myminion elasticsearch.pipeline_simulate mypipeline '{"docs":[{"_index":"index","_type":"type","_id":"id","_source":{"foo":"bar"}},{"_index":"index","_type":"type","_id":"id","_source":{"foo":"rab"}}]}' verbose=True

salt.modules.elasticsearch.repository_create(name, body, hosts=None, profile=None)

  New in version 2017.7.0.

  Create repository for storing snapshots. Note that shared repository paths have to be specified in path.repo Elasticsearch configuration option.

  name

    Repository name

  body

    Repository definition as in https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html

  CLI Example:

      salt myminion elasticsearch.repository_create testrepo '{"type":"fs","settings":{"location":"/tmp/test","compress":true}}'

salt.modules.elasticsearch.repository_delete(name, hosts=None, profile=None)

  New in version 2017.7.0.

  Delete existing repository.

  name

    Repository name

  CLI Example:

      salt myminion elasticsearch.repository_delete testrepo

salt.modules.elasticsearch.repository_get(name, local=False, hosts=None, profile=None)

  New in version 2017.7.0.

  Get existing repository details.

  name

    Repository name

  local

    Retrieve only local information, default is false

  CLI Example:

      salt myminion elasticsearch.repository_get testrepo

salt.modules.elasticsearch.repository_verify(name, hosts=None, profile=None)

  New in version 2017.7.0.

  Obtain list of cluster nodes which successfully verified this repository.

  name

    Repository name

  CLI Example:

      salt myminion elasticsearch.repository_verify testrepo

salt.modules.elasticsearch.search_template_create(id, body, hosts=None, profile=None)

  New in version 2017.7.0.

  Create search template by supplied definition

  id

    Template ID

  body

    Search template definition

  CLI Example:

      salt myminion elasticsearch.search_template_create mytemplate '{"template":{"query":{"match":{"title":"{{query_string}}"}}}}'

salt.modules.elasticsearch.search_template_delete(id, hosts=None, profile=None)

  New in version 2017.7.0.

  Delete existing search template definition.

  id

    Template ID

  CLI Example:

      salt myminion elasticsearch.search_template_delete mytemplate

salt.modules.elasticsearch.search_template_get(id, hosts=None, profile=None)

  New in version 2017.7.0.

  Obtain existing search template definition.

  id

    Template ID

  CLI Example:

      salt myminion elasticsearch.search_template_get mytemplate

salt.modules.elasticsearch.snapshot_create(repository, snapshot, body=None, hosts=None, profile=None)

  New in version 2017.7.0.

  Create snapshot in specified repository by supplied definition.

  repository

    Repository name

  snapshot

    Snapshot name

  body

    Snapshot definition as in https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html

  CLI Example:

      salt myminion elasticsearch.snapshot_create testrepo testsnapshot '{"indices":"index_1,index_2","ignore_unavailable":true,"include_global_state":false}'

salt.modules.elasticsearch.snapshot_delete(repository, snapshot, hosts=None, profile=None)

  New in version 2017.7.0.

  Delete snapshot from specified repository.

  repository

    Repository name

  snapshot

    Snapshot name

  CLI Example:

      salt myminion elasticsearch.snapshot_delete testrepo testsnapshot

salt.modules.elasticsearch.snapshot_get(repository, snapshot, ignore_unavailable=False, hosts=None, profile=None)

  New in version 2017.7.0.

  Obtain snapshot residing in specified repository.

  repository

    Repository name

  snapshot

    Snapshot name, use _all to obtain all snapshots in specified repository

  ignore_unavailable

    Ignore unavailable snapshots

  CLI Example:

      salt myminion elasticsearch.snapshot_get testrepo testsnapshot

salt.modules.elasticsearch.snapshot_restore(repository, snapshot, body=None, hosts=None, profile=None)

  New in version 2017.7.0.

  Restore existing snapshot in specified repository by supplied definition.

  repository

    Repository name

  snapshot

    Snapshot name

  body

    Restore definition as in https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html

  CLI Example:

      salt myminion elasticsearch.snapshot_restore testrepo testsnapshot '{"indices":"index_1,index_2","ignore_unavailable":true,"include_global_state":true}'

salt.modules.elasticsearch.snapshot_status(repository=None, snapshot=None, ignore_unavailable=False, hosts=None, profile=None)

  New in version 2017.7.0.

  Obtain status of all currently running snapshots.

  repository

    Particular repository to look for snapshots

  snapshot

    Snapshot name

  ignore_unavailable

    Ignore unavailable snapshots

  CLI Example:

      salt myminion elasticsearch.snapshot_status ignore_unavailable=True