This Ansible collection provides modules to work with Elasticsearch instances and clusters.
ansible-galaxy collection install community.elastic
Both Elasticsearch server version 7 and 8 are supported. But the version of elasticesearch Python library must be aligned with Elasticsearch server.
pip install elasticsearch==7.* # To connect to Elasticsearch 7.x
pip install elasticsearch==8.* # To connect to Elasticsearch 8.x
ansible-galaxy collection install https://github.com/ansible-collections/community.elastic/releases/download/latest/community-elastic-latest.tar.gz
These modules are tested on Debian and RHEL based distributions.
elastic_bulk
: Perform actions with documents using the Bulk API.elastic_cluster_health
: Validate cluster health.elastic_cluster_settings
: Manage Elastic Search Cluster Settings.elastic_index
: Manage Elasticsearch indexes.elastic_index_info
: Returns info about Elasticsearch indexes.elastic_index_lifecycle
: Manage Elasticsearch Index Lifecyles.elastic_keystore
: Manage entries in the Elasticsearch keystore.elastic_pipeline
: Manage Elasticsearch Pipelines.elastic_reindex
: Copies documents from a source to a destination.elastic_role
: Manage Elasticsearch user roles.elastic_rollup
: Manage Elasticsearch Rollup Jobs.elastic_snapshot
: Manage Elasticsearch Snapshots.elastic_snapshot_repository
: Manage Elasticsearch Snapshot Repositories.elastic_transform
: Manage Elasticsearch Transform Jobs.elastic_user
: Manage Elasticsearch users.
-
Requirements
- Python 3.5+
- pip
- virtualenv or pipenv if you prefer.
- git
- docker
- docker-compose
-
Useful Links
The ansible-test tool requires a specific directory hierarchy to function correctly so please follow carefully. Many of these test make use of docker-compose to launch Elastic Clusters. These tests should be run in a isolated Linux environment.
- Create the required directory structure. N-B. The ansible-test tool requires this format.
mkdir -p git/ansible_collections/community
cd git/ansible_collections/community
- Clone the required projects.
git clone https://github.com/ansible-collections/community.elastic.git ./elastic
git clone https://github.com/ansible-collections/community.general.git ./general
- Create and activate a virtual environment.
virtualenv venv
source venv/bin/activate
- Change to the project directory.
cd elastic
- Install the devel branch of ansible-base.
pip install https://github.com/ansible/ansible/archive/devel.tar.gz --disable-pip-version-check
Please note that most of these integration tests are intended to run directly in GitHUb Actions and running them locally may make changes to the executing computer. You can use the docker flag to avoid that but many of these tests won't work in those conditions.
-
Set elasticsearch and kibana version to integration_config.yml Please set elasticsearch_version and kibana_version to tests/integration/integration_config.yml. Refference: tests/integration/integration_config.yml.template
-
Run integration tests for the elastic_user module.
ansible-test integration -v --color yes --python 3.6 elastic_user
- Run integration tests for the elastic_cluster_health module.
ansible-test integration -v --color yes --python 3.6 elastic_cluster_health
- Run tests for everything in the collection.
ansible-test integration -v --color yes --python 3.6