main.yml 2.54 KB
---
# tasks file for beat---

- include_tasks: os-RedHat.yml
  when: ansible_os_family == "RedHat"

- include_tasks: os-Debian.yml
  when: ansible_os_family == "Debian"

- name: Configure {{ beat_name }}.yml
  template:
    src: templates/{{ beat_name }}.yml.j2
    dest: /etc/{{ beat_name }}/{{ beat_name }}.yml
  notify: "Restart beat service"

- name: Test {{ beat_name }} connection
  shell: '{{ beat_name }} test output'
  register: result
  changed_when: False

- name: Test connection output
  debug:
    msg: "{{ result.stdout }}"

- name: Reload systemd daemons
  systemd:
    daemon_reload: yes
  when: ansible_distribution_major_version >= "7"

#Enable system module
- name: Verify if system module of {{ beat_name }} is enabled
  shell: 'ls -l /etc/{{ beat_name }}/modules.d/*.yml | grep system'
  ignore_errors: yes
  #when: modules == 'yes'
  when: (  beat_name  == "metricbeat") or 
        (  beat_name  == "filebeat")
  register: check_system_module_result
  changed_when: False

- name: Configure system module of {{ beat_name }}
  shell: '{{ beat_name }} modules enable system'
  #when: modules == 'yes'
  when: 
    -  (  beat_name  == "metricbeat") or (  beat_name  == "filebeat")
    -  "check_system_module_result.rc != 0" 
  register: result
  changed_when: "'Module system is already enabled' not in result.stdout"
  notify: "Restart beat service"

#Enable Nginx module
- name: Verify if nginx module of {{ beat_name }} is enabled
  shell: 'ls -l /etc/{{ beat_name }}/modules.d/*.yml | grep nginx'
  ignore_errors: yes
  #when: modules == 'yes'
  when:
    - ( beat_name == "metricbeat" ) or ( beat_name == "filebeat" )
    - inventory_hostname in groups['nginx']
  register: check_nginx_module_result
  changed_when: False

- name: Configure nginx module of {{ beat_name }}
  shell: '{{ beat_name }} modules enable nginx'
  #when: modules == 'yes'
  when: 
    - ( beat_name == "metricbeat" ) or ( beat_name == "filebeat" )
    - inventory_hostname in groups['nginx']
    - "check_nginx_module_result.rc != 0" 
  register: result
  changed_when: "'Module nginx is already enabled' not in result.stdout"
  notify: "Restart beat service"

#Configure Dashboards
- name: Run {{ beat_name }} setup and dashboard config on kibana
  shell: '{{ beat_name }} setup'
  register: result
  changed_when: "result.rc == 0"
  ignore_errors: True
  notify: "Restart beat service"
  when: installation_result.changed

#Run handlers
- name: Flush handlers
  meta: flush_handlers

#- name: Start {{ beat_name }} service
#  service:
#    name: '{{ beat_name }}'
#    state: started
#    enabled: yes