127 lines
3.9 KiB
YAML
127 lines
3.9 KiB
YAML
---
|
|
- include_tasks: RedHat.yml
|
|
when: ansible_os_family == 'RedHat'
|
|
|
|
- include_tasks: Debian.yml
|
|
when: ansible_os_family == 'Debian'
|
|
|
|
- name: CentOS/RedHat | Install Filebeat.
|
|
package: name=filebeat-{{ filebeat_version }} state=present
|
|
register: filebeat_installing_package
|
|
until: filebeat_installing_package is succeeded
|
|
when:
|
|
- ansible_distribution in ['CentOS','RedHat', 'Amazon']
|
|
tags:
|
|
- install
|
|
|
|
- name: Debian/Ubuntu | Install Filebeat.
|
|
apt:
|
|
name: filebeat={{ filebeat_version }}
|
|
state: present
|
|
cache_valid_time: 3600
|
|
register: filebeat_installing_package_debian
|
|
until: filebeat_installing_package_debian is succeeded
|
|
when:
|
|
- not (ansible_distribution in ['CentOS','RedHat', 'Amazon'])
|
|
tags:
|
|
- init
|
|
|
|
- name: Copying node's certificate from master
|
|
copy:
|
|
src: "{{ item }}"
|
|
dest: "{{ node_certs_destination }}/"
|
|
mode: 0440
|
|
with_items:
|
|
- "{{ master_certs_path }}/{{ filebeat_node_name }}/{{ filebeat_node_name }}.key"
|
|
- "{{ master_certs_path }}/{{ filebeat_node_name }}/{{ filebeat_node_name }}.crt"
|
|
- "{{ master_certs_path }}/ca/ca.crt"
|
|
when:
|
|
- generate_CA
|
|
- filebeat_xpack_security
|
|
tags: xpack-security
|
|
|
|
- name: Copying node's certificate from master (Custom CA)
|
|
copy:
|
|
src: "{{ item }}"
|
|
dest: "{{ node_certs_destination }}/"
|
|
mode: 0440
|
|
with_items:
|
|
- "{{ master_certs_path }}/{{ filebeat_node_name }}/{{ filebeat_node_name }}.key"
|
|
- "{{ master_certs_path }}/{{ filebeat_node_name }}/{{ filebeat_node_name }}.crt"
|
|
- "{{ master_certs_path }}/ca/{{ ca_cert_name }}"
|
|
when:
|
|
- not generate_CA
|
|
- filebeat_xpack_security
|
|
tags: xpack-security
|
|
|
|
- name: Ensuring folder & certs permissions
|
|
file:
|
|
path: "{{ node_certs_destination }}/"
|
|
mode: 0774
|
|
state: directory
|
|
recurse: yes
|
|
when:
|
|
- filebeat_xpack_security
|
|
tags: xpack-security
|
|
|
|
- name: Checking if Filebeat Module folder file exists
|
|
stat:
|
|
path: "{{ filebeat_module_folder }}"
|
|
register: filebeat_module_folder_info
|
|
|
|
- name: Download, uncompress and apply permissions for Filebeat
|
|
block:
|
|
|
|
- name: Download Filebeat module package
|
|
get_url:
|
|
url: "{{ filebeat_module_package_url }}/{{ filebeat_module_package_name }}"
|
|
dest: "{{ filebeat_module_package_path }}"
|
|
|
|
- name: Unpacking Filebeat module package
|
|
unarchive:
|
|
src: "{{ filebeat_module_package_path }}/{{ filebeat_module_package_name }}"
|
|
dest: "{{ filebeat_module_destination }}"
|
|
remote_src: yes
|
|
|
|
- name: Setting 0755 permission for Filebeat module folder
|
|
file: dest={{ filebeat_module_folder }} mode=u=rwX,g=rwX,o=rwX recurse=yes
|
|
|
|
when: not filebeat_module_folder_info.stat.exists
|
|
|
|
- name: Checking if Filebeat Module package file exists
|
|
stat:
|
|
path: "{{ filebeat_module_package_path }}/{{ filebeat_module_package_name }}"
|
|
register: filebeat_module_package
|
|
when: filebeat_module_package is not defined
|
|
|
|
- name: Delete Filebeat module package file
|
|
file:
|
|
state: absent
|
|
path: "{{ filebeat_module_package_path }}/{{ filebeat_module_package_name }}"
|
|
when: filebeat_module_package.stat.exists
|
|
|
|
- import_tasks: config.yml
|
|
when: filebeat_create_config
|
|
notify: restart filebeat
|
|
|
|
- name: Reload systemd
|
|
systemd: daemon_reload=yes
|
|
ignore_errors: true
|
|
when:
|
|
- not (ansible_distribution == "Amazon" and ansible_distribution_major_version == "NA")
|
|
- not (ansible_distribution == "Ubuntu" and ansible_distribution_version is version('15.04', '<'))
|
|
- not (ansible_distribution == "Debian" and ansible_distribution_version is version('8', '<'))
|
|
- not (ansible_os_family == "RedHat" and ansible_distribution_version is version('7', '<'))
|
|
|
|
- name: Ensure Filebeat is started and enabled at boot.
|
|
service:
|
|
name: filebeat
|
|
state: started
|
|
enabled: true
|
|
|
|
- include_tasks: "RMRedHat.yml"
|
|
when: ansible_os_family == "RedHat"
|
|
|
|
- include_tasks: "RMDebian.yml"
|
|
when: ansible_os_family == "Debian"
|