-
Notifications
You must be signed in to change notification settings - Fork 15
/
setup.yml
73 lines (67 loc) · 2.58 KB
/
setup.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
---
- name: Config & Check syetem settings
hosts: all
become: yes
gather_facts: false
roles:
- system
- name: Prepare in advance
hosts: all
gather_facts: false
roles:
- advance
- name: Collect unicast hosts
hosts: all
gather_facts: false
vars_files:
- ["{{ inventory_dir }}/vars/{{ 'master' if groups['master'] is defined else 'mix' }}.yml",
"vars/{{ 'master' if groups['master'] is defined else 'mix' }}.yml"]
tasks:
- set_fact:
unicast_host: "{{ hostvars[item_master_host].ansible_host }}:{{ hostvars[item_master_host].transport_port \
if hostvars[item_master_host].transport_port is defined else transport_port }}"
initial_master_node: "{{ hostvars[item_master_host].node_name if hostvars[item_master_host].node_name is defined else node_name }}"
loop: "{{ groups['master'] if groups['master'] is defined else groups['mix'] }}"
loop_control:
loop_var: item_master_host
#index_var: item_master_index
when: (hostvars[item_master_host].node_master if hostvars[item_master_host].node_master is defined else node_master) | bool
register: host_fact
- set_fact:
unicast_hosts: "{{ host_fact.results | selectattr('ansible_facts', 'defined') | \
selectattr('ansible_facts.unicast_host', 'defined') | map(attribute='ansible_facts.unicast_host') | list }}"
initial_master_nodes: "{{ host_fact.results | selectattr('ansible_facts', 'defined') | \
selectattr('ansible_facts.initial_master_node', 'defined') | map(attribute='ansible_facts.initial_master_node') | list }}"
- name: Deploy elasticsearch master node
hosts: master
gather_facts: false
vars_files:
- ["{{ inventory_dir }}/vars/master.yml", "vars/master.yml"]
roles:
- {role: elasticsearch, data_mount_dirs: "{{ mount_dirs[0] }}" }
- name: Deploy elasticsearch data node
hosts: data
gather_facts: false
vars_files:
- ["{{ inventory_dir }}/vars/data.yml", "vars/data.yml"]
tasks:
- include_role:
name: elasticsearch
vars:
sequence_id: "{{ item.id }}"
data_mount_dirs: "{{ item.data_dirs }}"
with_items: "{{ data_node_configs }}"
- name: Deploy elasticsearch client node
hosts: client
gather_facts: false
vars_files:
- ["{{ inventory_dir }}/vars/client.yml", "vars/client.yml"]
roles:
- elasticsearch
- name: Deploy elasticsearch node (mixed, used for test case)
hosts: mix
gather_facts: false
vars_files:
- ["{{ inventory_dir }}/vars/mix.yml", "vars/mix.yml"]
roles:
- {role: elasticsearch, data_mount_dirs: "{{ mount_dirs[0] }}" }