Skip to content

Commit 86a79a9

Browse files
committed
ENH: Add Elasticsearch config
Downloads the Elasticsearch binaries and copies the systemd unit file to run Elasticsearch as a service.
1 parent af473e5 commit 86a79a9

File tree

7 files changed

+123
-0
lines changed

7 files changed

+123
-0
lines changed

chatops_deployment/ansible/configure.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,10 @@
4848
- alertmanager
4949
tags:
5050
- alertmanager
51+
52+
- name: Configure Elastic Stack
53+
hosts: elastic
54+
remote_user: ubuntu
55+
force_handlers: true
56+
roles:
57+
- elastic

chatops_deployment/ansible/group_vars/monitoring/vars.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,5 @@ alertmanager_username: "{{ vault_alertmanager_username }}"
77
alertmanager_password: "{{ vault_alertmanager_password }}"
88
alertmanager_version: "0.28.1"
99
prometheus_version: "3.2.1"
10+
elastic_password: "{{ vault_elastic_password }}"
11+
elasticsearch_version: "9.0.0"
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
- type: filestream
2+
id: elasticsearch
3+
enabled: true
4+
paths:
5+
- /var/log/elasticsearch/*.log
6+
fields:
7+
service.name: elasticsearch
8+
fields_under_root: true
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
- name: Restart Elasticsearch
3+
become: true
4+
ansible.builtin.systemd_service:
5+
name: elasticsearch.service
6+
state: restarted
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
- name: Install prerequisite packages
3+
become: true
4+
ansible.builtin.apt:
5+
pkg:
6+
- apt-transport-https
7+
- software-properties-common
8+
- wget
9+
update_cache: true
10+
11+
- name: Create key directory
12+
become: true
13+
ansible.builtin.file:
14+
path: /etc/apt/keyrings
15+
state: directory
16+
mode: "0755"
17+
18+
- name: Add Elasticsearch key and repository to apt
19+
become: true
20+
block:
21+
- name: Add key
22+
ansible.builtin.get_url:
23+
url: https://artifacts.elastic.co/GPG-KEY-elasticsearch
24+
dest: /etc/apt/keyrings/elasticsearch.asc
25+
mode: "0755"
26+
27+
- name: Add repository
28+
ansible.builtin.apt_repository:
29+
repo: "deb [signed-by=/etc/apt/keyrings/elasticsearch.asc] https://artifacts.elastic.co/packages/9.x/apt stable main"
30+
state: present
31+
32+
- name: Install Elasticsearch
33+
become: true
34+
ansible.builtin.apt:
35+
name: elasticsearch
36+
state: latest # noqa: package-latest
37+
update_cache: true
38+
39+
- name: Attach data volume to Elasticsearch data directory
40+
become: true
41+
ansible.posix.mount:
42+
boot: true
43+
path: /var/elasticsearch/data
44+
src: "{{ elasticsearch_device }}"
45+
state: mounted
46+
fstype: ext4
47+
48+
- name: Set permissions on volume
49+
become: true
50+
ansible.builtin.file:
51+
path: /var/elasticsearch/data
52+
state: directory
53+
owner: root
54+
group: elasticsearch
55+
mode: "0774"
56+
recurse: true
57+
58+
- name: Template elasticsearch config
59+
become: true
60+
ansible.builtin.template:
61+
src: elasticsearch.yml.j2
62+
dest: "/etc/elasticsearch/elasticsearch.yml"
63+
owner: root
64+
group: elasticsearch
65+
mode: "0770"
66+
notify:
67+
- Restart Elasticsearch
68+
69+
- name: Copy certificate and key
70+
become: true
71+
ansible.builtin.copy:
72+
src: "./SSL/elasticsearch.{{ item }}"
73+
dest: "/etc/elasticsearch/certs/elasticsearch.{{ item }}"
74+
owner: root
75+
group: elasticsearch
76+
mode: "0440"
77+
notify:
78+
- Restart Elasticsearch
79+
loop:
80+
- key
81+
- crt
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
- name: Install ElasticSearch
3+
ansible.builtin.import_tasks: elasticsearch.yml
4+
tags:
5+
- elasticsearch
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
path:
2+
data: /var/elasticsearch/data
3+
logs: /var/log/elasticsearch
4+
cluster.name: chatops-elasticsearch
5+
xpack.security.enabled: true
6+
xpack.security.enrollment.enabled: true
7+
xpack.security.http.ssl:
8+
enabled: true
9+
key: /etc/elasticsearch/certs/elasticsearch.key
10+
certificate: /etc/elasticsearch/certs/elasticsearch.crt
11+
xpack.security.transport.ssl:
12+
enabled: false
13+
http.host: 127.0.0.1
14+
http.port: 9200

0 commit comments

Comments
 (0)