ansible-role-logstash/tasks/main.yml

99 lines
2.3 KiB
YAML

---
- name: Install dependencies packages
ansible.builtin.package:
name:
- apt-transport-https
- default-jre
- gpg
tags: logstash
- name: Add repository key
ansible.builtin.get_url:
url: https://artifacts.elastic.co/GPG-KEY-elasticsearch
dest: /etc/apt/keyrings/elastic.asc
checksum: sha256:db52809c5f6b27f9c2bed45cb43e398c659275f3d35305653c6750a0db90f5eb
tags: logstash
- name: Add repository
ansible.builtin.apt_repository:
repo: >
deb [signed-by=/etc/apt/keyrings/elastic.asc]
https://artifacts.elastic.co/packages/{{ logstash_major_version }}.x/apt stable main
filename: elastic
tags: logstash
- name: Install package
ansible.builtin.package:
name:
- logstash
tags: logstash
- name: Copy general config file
ansible.builtin.copy:
content: "{{ logstash_full_config | to_yaml }}"
dest: /etc/logstash/logstash.yml
owner: root
group: root
mode: 0644
notify: Restart logstash
tags: logstash
- 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
- name: Create patterns directory
ansible.builtin.file:
path: /etc/logstash/patterns
owner: root
group: root
mode: 0755
state: directory
tags: logstash
- name: Copy patterns files
ansible.builtin.copy:
content: "{{ item.value }}"
dest: "/etc/logstash/patterns/{{ item.key }}.conf"
owner: root
group: root
mode: 0644
loop: "{{ logstash_patterns | dict2items }}"
loop_control:
label: "{{ item.key }}"
tags: logstash
- name: Copy input, output and filter files
ansible.builtin.template:
src: "{{ item }}.conf.j2"
dest: "/etc/logstash/conf.d/{{ item }}.conf"
owner: root
group: root
mode: 0644
validate: /usr/share/logstash/bin/logstash -t -f %s
loop:
- input
- output
- filter
notify: Restart logstash
tags: logstash
- name: Install plugins
community.general.logstash_plugin:
name: "{{ item.name }}"
state: "{{ item.state | default('present') }}"
loop: "{{ logstash_plugins }}"
tags: logstash
- name: Enable and start service
ansible.builtin.service:
name: logstash
state: started
enabled: true
tags: logstash