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.
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
Single or multiple indices separated by comma, use _all to perform the operation on all indices.
Alias name
Optional definition such as routing or filter as defined in https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html
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
Single or multiple indices separated by comma, use _all to perform the operation on all indices.
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
Single or multiple indices separated by comma, use _all to perform the operation on all indices.
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
Single or multiple indices separated by comma, use _all to perform the operation on all indices.
Alias names separated by comma
CLI example:
salt myminion elasticsearch.alias_get testindex
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.
Limit the information returned to a specific index
Specify the level of detail for returned information, default 'cluster', valid choices are: 'cluster', 'indices', 'shards'
Return local information, do not retrieve the state from master node
CLI example:
salt myminion elasticsearch.health
salt.modules.elasticsearch.
cluster_stats
(nodes=None, hosts=None, profile=None)¶New in version 2017.7.0.
Return Elasticsearch cluster stats.
List of cluster nodes (id or name) to display stats for. Use _local for connected node, empty for all
CLI example:
salt myminion elasticsearch.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 name where the document should reside
Type of the document
Document to store
URL of file specifying document to store. Cannot be used in combination with body
.
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 name where the document resides
Type of the document
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 name where the document resides
Document identifier
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 name where the document resides
Document identifier
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.
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 to be closed
Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes _all string or when no indices have been specified)
Whether to expand wildcard expression to concrete indices that are open, closed or both., default ‘open’, valid choices are: ‘open’, ‘closed’, ‘none’, ‘all’
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 name
Index definition, such as settings and mappings as defined in https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html
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 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 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 name
CLI example:
salt myminion elasticsearch.index_get 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 to be opened
Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes _all string or when no indices have been specified)
Whether to expand wildcard expression to concrete indices that are open, closed or both., default ‘closed’, valid choices are: ‘open’, ‘closed’, ‘none’, ‘all’
Whether specified concrete indices should be ignored when unavailable (missing or closed)
CLI example:
salt myminion elasticsearch.index_open testindex
salt.modules.elasticsearch.
index_template_create
(name, body=None, hosts=None, profile=None, source=None)¶Create an index template
Index template name
Template definition as specified in http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html
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
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
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
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 for the mapping
Name of the document type
Mapping definition as specified in https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html
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 for the mapping
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 for the mapping
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.
List of cluster nodes (id or name) to display stats for. Use _local for connected node, empty for all
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.
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.
Pipeline id
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.
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.
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.
Pipeline id
Pipeline definition as specified in https://www.elastic.co/guide/en/elasticsearch/reference/master/pipeline.html
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.
Repository name
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.
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.
Repository name
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.
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
Template ID
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.
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.
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 name
Snapshot name
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 name
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 name
Snapshot name, use _all to obtain all snapshots in specified repository
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 name
Snapshot name
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.
Particular repository to look for snapshots
Snapshot name
Ignore unavailable snapshots
CLI example:
salt myminion elasticsearch.snapshot_status ignore_unavailable=True