elasticsearch
¶
Salt execution module
Elasticsearch - A distributed RESTful search and analytics server for Elasticsearch 7 and below Module to provide Elasticsearch compatibility to Salt (compatible with Elasticsearch version 8+). Copied from elasticsearch.py module and updated.
Added in version 3005.1.
- codeauthor:
Cesar Sanchez <cesan3@gmail.com>
- depends:
elasticsearch-py <https://elasticsearch-py.readthedocs.io/en/latest/>
- 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.
- saltext.elasticsearch.modules.elasticsearch6_mod.__virtual__()[source]¶
Only load if elasticsearch librarielastic exist and ES version is 8+.
- saltext.elasticsearch.modules.elasticsearch6_mod.ping(allow_failure=False, hosts=None, profile=None)[source]¶
Added 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
- saltext.elasticsearch.modules.elasticsearch6_mod.info(hosts=None, profile=None)[source]¶
Added in version 2017.7.0.
Return Elasticsearch information.
CLI Example:
salt myminion elasticsearch.info salt myminion elasticsearch.info profile=elasticsearch-extra
- saltext.elasticsearch.modules.elasticsearch6_mod.node_info(nodes=None, flat_settings=False, hosts=None, profile=None)[source]¶
Added 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
- saltext.elasticsearch.modules.elasticsearch6_mod.cluster_health(index=None, level='cluster', local=False, hosts=None, profile=None)[source]¶
Added 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
- saltext.elasticsearch.modules.elasticsearch6_mod.cluster_stats(nodes=None, hosts=None, profile=None)[source]¶
Added 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
- saltext.elasticsearch.modules.elasticsearch6_mod.cluster_get_settings(flat_settings=False, include_defaults=False, hosts=None, profile=None)[source]¶
Added 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
- saltext.elasticsearch.modules.elasticsearch6_mod.cluster_put_settings(body=None, flat_settings=False, hosts=None, profile=None)[source]¶
Added in version 3000.
Set Elasticsearch cluster settings.
- body
The settings to be updated. Can be either ‘transient’ or ‘persistent’ (survives cluster restart) https://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"}}'
- saltext.elasticsearch.modules.elasticsearch6_mod.alias_create(indices, alias, hosts=None, body=None, profile=None, source=None)[source]¶
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
- saltext.elasticsearch.modules.elasticsearch6_mod.alias_delete(indices, aliases, hosts=None, body=None, profile=None, source=None)[source]¶
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
- saltext.elasticsearch.modules.elasticsearch6_mod.alias_exists(aliases, indices=None, hosts=None, profile=None)[source]¶
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
- saltext.elasticsearch.modules.elasticsearch6_mod.alias_get(indices=None, aliases=None, hosts=None, profile=None)[source]¶
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
- saltext.elasticsearch.modules.elasticsearch6_mod.document_create(index, doc_type, body=None, id=None, hosts=None, profile=None, source=None)[source]¶
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 '{}'
- saltext.elasticsearch.modules.elasticsearch6_mod.document_delete(index, doc_type, id, hosts=None, profile=None)[source]¶
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
- saltext.elasticsearch.modules.elasticsearch6_mod.document_exists(index, id, doc_type='_all', hosts=None, profile=None)[source]¶
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
- saltext.elasticsearch.modules.elasticsearch6_mod.document_get(index, id, doc_type='_all', hosts=None, profile=None)[source]¶
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
- saltext.elasticsearch.modules.elasticsearch6_mod.index_create(index, body=None, hosts=None, profile=None, source=None)[source]¶
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}}}'
- saltext.elasticsearch.modules.elasticsearch6_mod.index_delete(index, hosts=None, profile=None)[source]¶
Delete an index
- index
Index name
CLI Example:
salt myminion elasticsearch.index_delete testindex
- saltext.elasticsearch.modules.elasticsearch6_mod.index_exists(index, hosts=None, profile=None)[source]¶
Return a boolean indicating whether given index exists
- index
Index name
CLI Example:
salt myminion elasticsearch.index_exists testindex
- saltext.elasticsearch.modules.elasticsearch6_mod.index_get(index, hosts=None, profile=None)[source]¶
Check for the existence of an index and if it exists, return it
- index
Index name
CLI Example:
salt myminion elasticsearch.index_get testindex
- saltext.elasticsearch.modules.elasticsearch6_mod.index_open(index, allow_no_indices=True, expand_wildcards='closed', ignore_unavailable=True, hosts=None, profile=None)[source]¶
Added 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
- saltext.elasticsearch.modules.elasticsearch6_mod.index_close(index, allow_no_indices=True, expand_wildcards='open', ignore_unavailable=True, hosts=None, profile=None)[source]¶
Added 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
- saltext.elasticsearch.modules.elasticsearch6_mod.index_get_settings(hosts=None, profile=None, **kwargs)[source]¶
Added in version 3000.
Check for the existence of an index and if it exists, return its settings https://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
- saltext.elasticsearch.modules.elasticsearch6_mod.index_put_settings(body=None, hosts=None, profile=None, source=None, **kwargs)[source]¶
Added 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/api-conventions.html#time-units
CLI Example:
salt myminion elasticsearch.index_put_settings index=testindex body='{"settings" : {"index" : {"number_of_replicas" : 2}}}'
- saltext.elasticsearch.modules.elasticsearch6_mod.mapping_create(index, doc_type, body=None, hosts=None, profile=None, source=None)[source]¶
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 } } } }'
- saltext.elasticsearch.modules.elasticsearch6_mod.mapping_delete(index, doc_type, hosts=None, profile=None)[source]¶
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
- saltext.elasticsearch.modules.elasticsearch6_mod.mapping_get(index, doc_type, hosts=None, profile=None)[source]¶
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
- saltext.elasticsearch.modules.elasticsearch6_mod.index_template_create(name, body=None, hosts=None, profile=None, source=None)[source]¶
Create an index template
- name
Index template name
- body
Template definition as specified in https://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 } }'
- saltext.elasticsearch.modules.elasticsearch6_mod.index_template_delete(name, hosts=None, profile=None)[source]¶
Delete an index template (type) along with its data
- name
Index template name
CLI Example:
salt myminion elasticsearch.index_template_delete testindex_templ user
- saltext.elasticsearch.modules.elasticsearch6_mod.index_template_exists(name, hosts=None, profile=None)[source]¶
Return a boolean indicating whether given index template exists
- name
Index template name
CLI Example:
salt myminion elasticsearch.index_template_exists testindex_templ
- saltext.elasticsearch.modules.elasticsearch6_mod.index_template_get(name, hosts=None, profile=None)[source]¶
Retrieve template definition of index or index/type
- name
Index template name
CLI Example:
salt myminion elasticsearch.index_template_get testindex_templ
- saltext.elasticsearch.modules.elasticsearch6_mod.pipeline_get(id, hosts=None, profile=None)[source]¶
Added 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
- saltext.elasticsearch.modules.elasticsearch6_mod.pipeline_delete(id, hosts=None, profile=None)[source]¶
Added in version 2017.7.0.
Delete Ingest pipeline. Available since Elasticsearch 5.0.
- id
Pipeline id
CLI Example:
salt myminion elasticsearch.pipeline_delete mypipeline
- saltext.elasticsearch.modules.elasticsearch6_mod.pipeline_create(id, body, hosts=None, profile=None)[source]¶
Added 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}}"}}]}'
- saltext.elasticsearch.modules.elasticsearch6_mod.pipeline_simulate(id, body, verbose=False, hosts=None, profile=None)[source]¶
Added 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
- saltext.elasticsearch.modules.elasticsearch6_mod.search_template_get(id, hosts=None, profile=None)[source]¶
Added in version 2017.7.0.
Obtain existing search template definition.
- id
Template ID
CLI Example:
salt myminion elasticsearch.search_template_get mytemplate
- saltext.elasticsearch.modules.elasticsearch6_mod.search_template_create(id, body, hosts=None, profile=None)[source]¶
Added 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}}"}}}}'
- saltext.elasticsearch.modules.elasticsearch6_mod.search_template_delete(id, hosts=None, profile=None)[source]¶
Added in version 2017.7.0.
Delete existing search template definition.
- id
Template ID
CLI Example:
salt myminion elasticsearch.search_template_delete mytemplate
- saltext.elasticsearch.modules.elasticsearch6_mod.repository_get(name, local=False, hosts=None, profile=None)[source]¶
Added 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
- saltext.elasticsearch.modules.elasticsearch6_mod.repository_create(name, body, hosts=None, profile=None)[source]¶
Added 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}}'
- saltext.elasticsearch.modules.elasticsearch6_mod.repository_delete(name, hosts=None, profile=None)[source]¶
Added in version 2017.7.0.
Delete existing repository.
- name
Repository name
CLI Example:
salt myminion elasticsearch.repository_delete testrepo
- saltext.elasticsearch.modules.elasticsearch6_mod.repository_verify(name, hosts=None, profile=None)[source]¶
Added 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
- saltext.elasticsearch.modules.elasticsearch6_mod.snapshot_status(repository=None, snapshot=None, ignore_unavailable=False, hosts=None, profile=None)[source]¶
Added 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
- saltext.elasticsearch.modules.elasticsearch6_mod.snapshot_get(repository, snapshot, ignore_unavailable=False, hosts=None, profile=None)[source]¶
Added 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
- saltext.elasticsearch.modules.elasticsearch6_mod.snapshot_create(repository, snapshot, body=None, hosts=None, profile=None)[source]¶
Added 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}'
- saltext.elasticsearch.modules.elasticsearch6_mod.snapshot_restore(repository, snapshot, body=None, hosts=None, profile=None)[source]¶
Added 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}'
- saltext.elasticsearch.modules.elasticsearch6_mod.snapshot_delete(repository, snapshot, hosts=None, profile=None)[source]¶
Added 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
- saltext.elasticsearch.modules.elasticsearch6_mod.flush_synced(hosts=None, profile=None, **kwargs)[source]¶
Added in version 3000.
Perform a normal flush, then add a generated unique marker (sync_id) to all shards. https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-synced-flush-api.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'