ansible-role-logstash/tasks/main.yml

100 lines
2.3 KiB
YAML
Raw Normal View History

2019-09-10 06:57:26 +00:00
---
2023-07-05 09:03:54 +00:00
- name: Install dependencies packages
2021-08-24 15:02:37 +00:00
ansible.builtin.package:
name:
2019-09-10 06:57:26 +00:00
- apt-transport-https
2021-08-24 14:58:34 +00:00
- default-jre
- gpg
2019-09-10 06:57:26 +00:00
tags: logstash
2023-07-05 09:03:54 +00:00
- name: Add repository key
2024-02-15 10:24:47 +00:00
ansible.builtin.get_url:
2019-09-10 06:57:26 +00:00
url: https://artifacts.elastic.co/GPG-KEY-elasticsearch
2024-02-15 10:24:47 +00:00
dest: /etc/apt/keyrings/elastic.asc
checksum: sha256:db52809c5f6b27f9c2bed45cb43e398c659275f3d35305653c6750a0db90f5eb
2019-09-10 06:57:26 +00:00
tags: logstash
2023-07-05 09:03:54 +00:00
- name: Add repository
2021-08-24 15:02:37 +00:00
ansible.builtin.apt_repository:
2024-02-15 10:24:47 +00:00
repo: >
deb [signed-by=/etc/apt/keyrings/elastic.asc]
https://artifacts.elastic.co/packages/{{ logstash_major_version }}.x/apt stable main
filename: elastic
2019-09-10 06:57:26 +00:00
tags: logstash
2023-07-05 09:03:54 +00:00
- name: Install package
2021-08-24 15:02:37 +00:00
ansible.builtin.package:
name:
- logstash
2019-09-10 06:57:26 +00:00
tags: logstash
2023-07-05 09:03:54 +00:00
- name: Copy general config file
2021-08-24 15:02:37 +00:00
ansible.builtin.copy:
2023-07-05 09:03:54 +00:00
content: "{{ logstash_full_config | to_yaml }}"
2019-09-10 06:57:26 +00:00
dest: /etc/logstash/logstash.yml
owner: root
group: root
mode: 0644
2023-07-05 09:03:54 +00:00
notify: Restart logstash
2019-09-10 06:57:26 +00:00
tags: logstash
2024-02-15 13:40:18 +00:00
- name: Copy logging config file
ansible.builtin.template:
src: log4j2.properties.j2
dest: /etc/logstash/log4j2.properties
owner: root
group: root
mode: 0644
notify: Restart logstash
tags: logstash
2023-07-05 09:03:54 +00:00
- name: Create patterns directory
2021-08-24 15:02:37 +00:00
ansible.builtin.file:
2021-08-24 14:55:01 +00:00
path: /etc/logstash/patterns
owner: root
group: root
mode: 0755
state: directory
tags: logstash
2023-07-05 09:03:54 +00:00
- name: Copy patterns files
2021-08-24 15:02:37 +00:00
ansible.builtin.copy:
2023-07-05 09:03:54 +00:00
content: "{{ item.value }}"
dest: "/etc/logstash/patterns/{{ item.key }}.conf"
2021-08-24 14:55:01 +00:00
owner: root
group: root
mode: 0644
2023-07-05 09:03:54 +00:00
loop: "{{ logstash_patterns | dict2items }}"
2021-08-24 14:55:01 +00:00
loop_control:
2023-07-05 09:03:54 +00:00
label: "{{ item.key }}"
2021-08-24 14:55:01 +00:00
tags: logstash
2023-07-05 09:03:54 +00:00
- name: Copy input, output and filter files
2021-08-24 15:02:37 +00:00
ansible.builtin.template:
2023-07-05 09:03:54 +00:00
src: "{{ item }}.conf.j2"
dest: "/etc/logstash/conf.d/{{ item }}.conf"
2019-09-10 06:57:26 +00:00
owner: root
group: root
mode: 0644
validate: /usr/share/logstash/bin/logstash -t -f %s
2019-09-10 06:57:26 +00:00
loop:
- input
- output
- filter
2023-07-05 09:03:54 +00:00
notify: Restart logstash
2019-09-10 06:57:26 +00:00
tags: logstash
2023-07-05 09:03:54 +00:00
- name: Install plugins
2021-08-24 15:02:37 +00:00
community.general.logstash_plugin:
2023-07-05 09:03:54 +00:00
name: "{{ item.name }}"
state: "{{ item.state | default('present') }}"
loop: "{{ logstash_plugins }}"
2019-09-10 06:57:26 +00:00
tags: logstash
2023-07-05 09:03:54 +00:00
- name: Enable and start service
2021-08-24 15:02:37 +00:00
ansible.builtin.service:
2019-09-10 06:57:26 +00:00
name: logstash
state: started
enabled: true
tags: logstash