Home
Softono
community.elastic

community.elastic

Open source Python
33
Stars
15
Forks
5
Issues
6
Watchers
2 weeks
Last Commit

About community.elastic

community.elastic is an Ansible collection that provides modules for managing Elasticsearch instances, clusters, and related components. It supports Elasticsearch server versions 7, 8, and 9, with the corresponding Python elasticsearch library version required for connectivity. The collection includes modules for performing bulk document operations, validating cluster health, managing cluster settings, creating and configuring indexes, retrieving index information, and handling index lifecycles. Additional modules support keystore entries, Logstash pipelines, Elasticsearch pipelines, reindexing documents, user roles, rollup jobs, snapshots and snapshot repositories, transform jobs, and user management. Modules are tested on Debian and RHEL-based distributions. Installation is done via ansible-galaxy, pulling either the official release or the latest development version from GitHub. Integration testing uses docker-compose to launch Elasticsearch clusters and requires Python 3.5 or later, pip, virtualenv, git,

Platforms

Web Self-hosted

Languages

Python

community.elastic

CI Build & Publish Collection

This Ansible collection provides modules to work with Elasticsearch instances and clusters.

Installing the official release

ansible-galaxy collection install community.elastic

Installing the latest development version

Both Elasticsearch server version 7, 8 and 9 are supported. But the version of Elasticsearch 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
pip install elasticsearch==9.*  # To connect to Elasticsearch 9.x
ansible-galaxy collection install https://github.com/ansible-collections/community.elastic/releases/download/latest/community-elastic-latest.tar.gz

Collection Contents

These modules are tested on Debian and RHEL based distributions.

Modules

  • 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_logstash_pipeline: Manage Logstash pipelines.
  • 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.

Running the integration tests

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