120 lines
3.3 KiB
Markdown
120 lines
3.3 KiB
Markdown
# ansible-elasticsearch
|
|
|
|
Ansible playbook / roles / tasks for Elasticsearch. Currently it will work on Debian and RedHat based linux systems.
|
|
|
|
## Usage
|
|
|
|
Create your ansible playbook with your own tasks, and include the role elasticsearch.
|
|
You will have to have this repository accessible within the context of playbook, e.g.
|
|
|
|
e.g.
|
|
|
|
```
|
|
cd /my/repos/
|
|
git clone git@github.com:elastic/ansible-elasticsearch.git
|
|
cd /my/ansible/playbook
|
|
mkdir -p roles
|
|
ln -s /my/repos/ansible-elasticsearch ./roles/elasticsearch
|
|
```
|
|
|
|
Then create your playbook yaml adding the role elasticsearch and overriding any variables you wish. It can be as simple as this to take all the defaults:
|
|
|
|
|
|
```
|
|
---
|
|
hosts: my_host
|
|
roles:
|
|
- elasticsearch
|
|
tasks:
|
|
- .... your tasks ...
|
|
```
|
|
|
|
or more complex..
|
|
|
|
|
|
```
|
|
---
|
|
hosts: my_host
|
|
roles:
|
|
- elasticsearch
|
|
vars:
|
|
java_packages:
|
|
- "oracle-java7-installer"
|
|
es_major_version: 1.7
|
|
es_version: 1.7.0
|
|
es_start_service: false
|
|
es_plugins_reinstall: false
|
|
es_plugins:
|
|
- plugin: elasticsearch/elasticsearch-cloud-aws
|
|
version: 2.5.0
|
|
- plugin: elasticsearch/marvel
|
|
version: latest
|
|
- plugin: elasticsearch/license
|
|
version: latest
|
|
- plugin: elasticsearch/shield
|
|
version: latest
|
|
- plugin: elasticsearch/elasticsearch-support-diagnostics
|
|
version: latest
|
|
- plugin: lmenezes/elasticsearch-kopf
|
|
version: master
|
|
tasks:
|
|
- .... your tasks ...
|
|
```
|
|
|
|
Make sure your hosts are defined in your ```hosts``` file with the appropriate ```ansible_ssh_host```, ```ansible_ssh_user``` and ```ansible_ssh_private_key_file``` values.
|
|
|
|
Then run it:
|
|
|
|
```
|
|
ansible-playbook -i hosts ./your-playbook.yml
|
|
```
|
|
|
|
## Configuration
|
|
You can add the role without any customisation and it will by default install Java and Elasticsearch, without any plugins.
|
|
|
|
#### Description of the variables available.
|
|
|
|
```es_major_version``` (e.g. `1.7` )
|
|
|
|
Which major version to use. This is also used to define which the repository is used.
|
|
|
|
```es_version``` (e.g. `1.7.0`)
|
|
|
|
Which minor version to use.
|
|
|
|
```es_start_service``` (true (default) or false)
|
|
|
|
Should elasticsearch be startet after installation?
|
|
|
|
```es_use_repository``` (true (default) or false )
|
|
|
|
Should elasticsearch be installed from a repository or from a url download. If false package will be downloaded from https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch.... You can also specify `es_custom_package_url` with a url to a custom package.
|
|
|
|
```es_version_lock``` (true or false (default))
|
|
|
|
This will lock the elasticsearch version using `yum versionlock` or `apt-mark hold`.
|
|
|
|
```es_scripts``` (true or false (default))
|
|
|
|
If true you need to supply a files/scripts/ folder with your scripts, inside the role directory. The folder and all files will be copied to `/etc/elasticsearch/scripts`. You can also provide a scripts/ folder at toplevel of your playbook.
|
|
|
|
|
|
```es_plugins_reinstall``` (true or false (default) )
|
|
|
|
Schould plugins be reinstalled?
|
|
|
|
```es_plugins``` (an array of plugin definitons e.g.:)
|
|
|
|
```
|
|
es_plugins:
|
|
- plugin: elasticsearch-cloud-aws
|
|
version: 2.5.0
|
|
```
|
|
|
|
`java_debian`
|
|
|
|
name of the java debian package to use (e.g. `openjdk-7-jre-headless`)
|
|
|
|
`java_rhel`
|
|
|
|
name of the java rhel package to use (e.g. `java-1.8.0-openjdk.x86_64`)
|