102 lines
2.4 KiB
YAML
102 lines
2.4 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
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
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
|