67 lines
2.6 KiB
YAML
67 lines
2.6 KiB
YAML
---
|
|
|
|
- name: Ensure elasticsearch is started
|
|
service: name={{instance_init_script | basename}} state=started enabled=yes
|
|
|
|
- set_fact:
|
|
es_config_host: "{{ item }}"
|
|
with_items: "{{ es_config['network.host'] }}"
|
|
when:
|
|
- es_config['network.host'] is defined and es_config['network.host'] is not string
|
|
- not item | match('^_.*_$')
|
|
- es_config_host is not defined
|
|
|
|
- set_fact:
|
|
es_config_host: "{{ es_config['network.host'] }}"
|
|
when:
|
|
- es_config['network.host'] is defined and es_config['network.host'] is string
|
|
- not es_config['network.host'] | match('^_.*_$')
|
|
|
|
- set_fact:
|
|
es_config_port: "{{ es_config['network.port'] }}"
|
|
when:
|
|
- es_config['network.port'] is defined and es_config['network.port'] is number
|
|
|
|
- set_fact:
|
|
es_config_port: "{{ es_config['network.port'].split('-').0 }}"
|
|
when:
|
|
- es_config['network.port'] is defined and es_config['network.port'] is string
|
|
- es_config['network.port'] | match('^\d')
|
|
|
|
- name: Wait for elasticsearch to startup
|
|
wait_for:
|
|
host: "{% if es_config_host is defined %}{{es_config_host}}{% else %}{{es_api_host}}{% endif %}"
|
|
port: "{% if es_config_port is defined %}{{es_config_port}}{% else %}{{es_api_port}}{% endif %}"
|
|
delay: 10
|
|
|
|
- name: Gather template files contents
|
|
shell: "cat /etc/elasticsearch/templates/{{ item }}"
|
|
with_items: "{{ es_template_files }}"
|
|
register: es_template_files_contents
|
|
|
|
- name: Get template files
|
|
find: paths="/etc/elasticsearch/templates" patterns="*.json"
|
|
register: templates
|
|
|
|
- name: Install templates without auth
|
|
uri:
|
|
url: "http://{% if es_config_host is defined %}{{es_config_host}}{% else %}{{es_api_host}}{% endif %}:{% if es_config_port is defined %}{{es_config_port}}{% else %}{{es_api_port}}{% endif %}/_template/{{item.path | filename}}"
|
|
method: PUT
|
|
status_code: 200
|
|
body_format: json
|
|
body: "{{ item.stdout }}"
|
|
when: not es_enable_xpack or not es_xpack_features is defined or not '"shield" in es_xpack_features'
|
|
with_items: "{{ es_template_files_contents.results }}"
|
|
|
|
- name: Install templates with auth
|
|
uri:
|
|
url: "http://{% if es_config_host is defined %}{{es_config_host}}{% else %}{{es_api_host}}{% endif %}:{% if es_config_port is defined %}{{es_config_port}}{% else %}{{es_api_port}}{% endif %}/_template/{{item.path | filename}}"
|
|
method: PUT
|
|
status_code: 200
|
|
user: "{{es_api_basic_auth_username}}"
|
|
password: "{{es_api_basic_auth_password}}"
|
|
force_basic_auth: yes
|
|
body_format: json
|
|
body: "{{ item.stdout }}"
|
|
when: es_enable_xpack and es_xpack_features is defined and '"shield" in es_xpack_features'
|
|
with_items: "{{ es_template_files_contents.results }}"
|