---
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,e
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# Installing Filebeat
#

# download Filebeat
- name: "download filebeat rpm"
  get_url:
  args:
    url: https://artifacts.elastic.co/downloads/beats/filebeat/{{ filebeat_rpm }}
    dest: /tmp/{{ filebeat_rpm }}
    checksum: "{{ filebeat_checksum }}"
    force: no

  #Install filebeat"
- name: "Install filebeat rpm"
  become: true
  yum:
    name: /tmp/{{ filebeat_rpm }}
    state: present

#Configure Filebeat yml file

- name: Copy filebeat.yml to /etc
  template:
    src: ../../filebeat/templates/filebeat.yml
    dest: /etc/filebeat/
    backup: yes
  become: true

- name: Copy filebeat.reference.yml to /etc
  copy:
    src: ../../filebeat/templates/filebeat.reference.yml
    dest: /etc/filebeat/
    backup: yes
  become: true

- name: Enable logstash module
  command: filebeat modules enable logstash
  become: true

#Run Filebeat
- name: Run Filebeat in the background
  command: screen -d -m filebeat -e -c filebeat.yml -d "publish"
  become: true
