---
- name: install acl package
  apt:
    name: acl
    state: present
    update_cache: true
  when: ansible_pkg_mgr == "apt" and not ansible_check_mode

- name: Create Splunk group
  group:
    name: "{{ splunk_forwarder_group }}"
    gid: "{{ splunk_forwarder_gid }}"
    state: present
  tags: splunk_user

- name: Create Splunk user
  user:
    name: "{{ splunk_forwarder_user }}"
    group: "{{ splunk_forwarder_group }}"
    uid: "{{ splunk_forwarder_uid }}"
    state: present
  tags: splunk_user

- name: Copy package to target
  copy:
    src: "../../../{{ splunk_deb_package }}"
    dest: "{{ splunk_package_download_path }}/{{ splunk_deb_package }}"
  when: ansible_pkg_mgr == "apt" and not ansible_check_mode

- name: Copy package to target
  copy:
    src: "../../../{{ splunk_rpm_package }}"
    dest: "{{ splunk_package_download_path }}/{{ splunk_rpm_package }}"
  when: ansible_pkg_mgr == "yum" and not ansible_check_mode

- name: Install the Universal Forwarder
  apt:
    deb: "{{ splunk_package_download_path }}/{{ splunk_deb_package }}"
    state: present
    update_cache: true
  when: ansible_pkg_mgr == "apt" and not ansible_check_mode

- name: Install the Universal Forwarder
  yum:
    name: "{{ splunk_package_download_path }}/{{ splunk_rpm_package }}"
    state: present
    update_cache: true
  when: ansible_pkg_mgr == "yum" and not ansible_check_mode

- name: Update permissions
  file:
    dest: /opt/splunkforwarder
    owner: "{{ splunk_forwarder_user }}"
    group: "{{ splunk_forwarder_group }}"
    recurse: yes

#- name: Check if /etc/init.d/splunk exists
#  stat:
#    path: /etc/init.d/splunk
#  register: splunk_service_check

- name: Accept Splunk license
  command: /opt/splunkforwarder/bin/splunk start --accept-license --answer-yes --no-prompt
  become: yes
  become_user: "{{ splunk_forwarder_user }}"

- name: Stop Splunk
  command: /opt/splunkforwarder/bin/splunk stop
  become: yes
  become_user: "{{ splunk_forwarder_user }}"

#- block:
#    - name: Disable legacy start after reboot
#      command: "/opt/splunkforwarder/bin/splunk disable boot-start"
#      become: yes
#      become_user: "{{ splunk_forwarder_user }}"
#      when: splunk_service_check.stat.exists
#
#  rescue:
#    - name: Remove /etc/init.d/splunk due to failure
#      file:
#        path: /etc/init.d/splunk
#        state: absent
#      when: splunk_service_check.stat.exists

- name: Enable start after reboot
  command: "/opt/splunkforwarder/bin/splunk enable boot-start -systemd-managed 0 -user {{ splunk_forwarder_user }}"

- name: Get Distribution ID
  shell: awk -F= '/^ID=/{print $2}' /etc/os-release | sed s/'"'//g
  register: distro_id

- name: Template a file to /opt/splunkforwarder/etc/system/local/deploymentclient.conf
  template:
    src: templates/deploymentclient.conf.j2
    dest: /opt/splunkforwarder/etc/system/local/deploymentclient.conf
    owner: "{{ splunk_forwarder_user }}"
    group: "{{ splunk_forwarder_group }}"
    mode: '0644'

- name: Template a file to /opt/splunkforwarder/etc/system/local/outputs.conf
  template:
    src: templates/outputs.conf.j2
    dest: /opt/splunkforwarder/etc/system/local/outputs.conf
    owner: "{{ splunk_forwarder_user }}"
    group: "{{ splunk_forwarder_group }}"
    mode: '0644'

- name: Template a file to /opt/splunkforwarder/etc/system/local/inputs.conf
  template:
    src: templates/inputs.conf.j2
    dest: /opt/splunkforwarder/etc/system/local/inputs.conf
    owner: "{{ splunk_forwarder_user }}"
    group: "{{ splunk_forwarder_group }}"
    mode: '0644'

- name: Set default ACL
  command: "setfacl -d -m u:splunk:r-x /var/log/"

- name: Set ACL recursive
  command: "setfacl -R -m u:splunk:r-x /var/log/"

#- name: Start Splunk
#  service:
#    name: splunk
#    state: started
