- OpenSearch Project Ansible-Playbook
- OpenSearch Installation with Dashboards
- Contributing
- Getting Help
- Code of Conduct
- Security
- License
- Copyright
A community repository for Ansible Playbook of OpenSearch Project.
This ansible playbook supports the following,
- Can be deployed on baremetal and VMs(AWS EC2)
- Supports most popular Linux distributions(Centos7, RHEL7, Amazon Linux2, Ubuntu 20.04)
- Install and configure the Apache2.0 opensource OpenSearch
- Configure TLS/SSL for OpenSearch transport layer(Nodes to Nodes communication) and REST API layer
- Generate self-signed certificates to configure TLS/SSL for opensearch
- Configure the Internal Users Database with limited users and user-defined passwords
- Install and configure the Apache2.0 opensource OpenSearch Dashboards
- Ansible 2.9+
- Java 8
Refer the file inventories/opensearch/group_vars/all/all.yml
to change the default values.
For example if we need to increase the java memory heap size for opensearch,
xms_value: 8
xmx_value: 8
In inventories/opensearch/hosts
file, you can configure the node details.
ansible_host
is used for ansible to connect the nodes to run this playbook.
ip
is used in OpenSearch and Dashboards configuration.
In AWS EC2,
os1 ansible_host=<Elastic/Public IP> address ansible_user=root ip=<Private IP address>
By default, this playbook will install five nodes opensearch cluster with respective roles (3 master, 5 data and 2 ingest nodes).
os1 ansible_host=10.0.1.1 ip=10.0.1.1 roles=data,master
os2 ansible_host=10.0.1.2 ip=10.0.1.2 roles=data,master
os3 ansible_host=10.0.1.3 ip=10.0.1.3 roles=data,master
0s4 ansible_host=10.0.1.4 ip=10.0.1.4 roles=data,ingest
os5 ansible_host=10.0.1.5 ip=10.0.1.5 roles=data,ingest
Note: You need to add additional nodes details in inventories/opensearch/hosts
file for creating opensearch cluster with different node sizes.
For example, if you want to create seven nodes cluster with two additional data nodes (os6
and os7
) then you need to include the below entries.
os6 ansible_host=10.0.1.6 ip=10.0.1.6 roles=data
os7 ansible_host=10.0.1.7 ip=10.0.1.5 roles=data
You have to mention the opensearch node roles details in roles
variable.
For single node installation, you need to change the cluster_type
variable in inventory file inventories/opensearch/group_vars/all/all.yml
cluster_type: single-node
# Deploy with ansible playbook - run the playbook as root
ansible-playbook -i inventories/opensearch/hosts opensearch.yml --extra-vars "admin_password=Test@123 kibanaserver_password=Test@6789"
You should set the reserved users(admin
and kibanaserver
) password using admin_password
and kibanaserver_password
variables.
It will install and configure the opensearch. Once the deployment completed, you can access the opensearch Dashboards with user admin
and password which you provided for variable admin_password
.
See developer guide and how to contribute to this project.
If you find a bug, or have a feature request, please don't hesitate to open an issue in this repository.
For more information, see project website and documentation. If you need help and are unsure where to open an issue, try forums.
This project has adopted the Amazon Open Source Code of Conduct. For more information see the Code of Conduct FAQ, or contact opensource-codeofconduct@amazon.com with any additional questions or comments.
If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our vulnerability reporting page. Please do not create a public GitHub issue.
This project is licensed under the Apache v2.0 License.
Copyright OpenSearch Contributors. See NOTICE for details.