-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathplaybook.yml
105 lines (93 loc) · 3.04 KB
/
playbook.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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
- name: Install and configure Elasticsearch cluster
hosts:
- es01
- es02
- es03
become: true
vars:
elasticsearch_config_file: /etc/elasticsearch/elasticsearch.yml
node_roles_master_data: ["master", "data"]
node_roles_master: ["master"]
node_name_es01: "es01"
node_name_es02: "es02"
node_name_es03: "es03"
tasks:
- name: Update the server and install apt-transport-https package
apt:
name: apt-transport-https
update_cache: yes
- name: Update package cache and fix missing dependencies
become: true
apt:
update_cache: yes
name: openjdk-11-jdk
state: present
force_apt_get: yes
- name: Set JAVA_HOME Environment Variables
lineinfile:
path: /etc/environment
line: 'JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"'
environment:
PATH: "{{ ansible_env.PATH }}:/usr/lib/jvm/java-11-openjdk-amd64/bin"
- name: Reload environment variables
become: true
shell: . /etc/environment
- name: Verify JAVA_HOME environment variable
command: echo $JAVA_HOME
- name: Add ElasticSearch GPG key
apt_key:
url: https://artifacts.elastic.co/GPG-KEY-elasticsearch
state: present
keyring: /usr/share/keyrings/elasticsearch-keyring.gpg
- name: Add ElasticSearch repository
become: true
become_method: sudo
shell: echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
- name: Install ElasticSearch 8 on Ubuntu 20.04 LTS
apt:
update_cache: yes
name: elasticsearch
state: present
- name: Generate Elasticsearch configuration file on es01
template:
src: elasticsearch.yml.j2
dest: "{{ elasticsearch_config_file }}"
owner: elasticsearch
group: elasticsearch
mode: '0644'
delegate_to: es01
vars:
node_roles: "{{ node_roles_master_data }}"
node_name: "{{ node_name_es01 }}"
- name: Generate Elasticsearch configuration file on es02
template:
src: elasticsearch.yml.j2
dest: "{{ elasticsearch_config_file }}"
owner: elasticsearch
group: elasticsearch
mode: '0644'
delegate_to: es02
vars:
node_roles: "{{ node_roles_master_data }}"
node_name: "{{ node_name_es02 }}"
- name: Generate Elasticsearch configuration file on es03
template:
src: elasticsearch.yml.j2
dest: "{{ elasticsearch_config_file }}"
owner: elasticsearch
group: elasticsearch
mode: '0644'
delegate_to: es03
vars:
node_roles: "{{ node_roles_master }}"
node_name: "{{ node_name_es03 }}"
- name: Start Elasticsearch service
service:
name: elasticsearch
state: started
enabled: yes
handlers:
- name: Restart Elasticsearch service
service:
name: elasticsearch
state: restarted