Splunk forwarder installation using Ansible – easy install in 1 min

Introduction:

Splunk forwarder installation can be accomplished using Ansible. In this guide, we are about to see a small playbook which can be used for multiple times with any numbers of remote servers.

In my case, the requirement came to install on hundreds of RHEL 7 servers. Creating playbook took 20 mins by referring to existing playbooks and official guide. Finally completed installing on all servers within 10 mins.

Article Updated with latest Splunk version 8.1.0 installing on CentOS 8.3, RHEL 8.x versions.

Modules we are using in this playbook

Before start using this playbook replace “your_username” with a remote user account which you are using to manage servers. This playbook builds only with copy, yum, shell, command and debug modules. This is more than enough to handle this simple installation and managing the forwarder service.

Splunk Forwarder Download

The forwarder package version I’m using in this guide is a very recent one. If you are looking for an older version installation guide, have a look into Splunk forwarder installation guide.

Ansible Related Articles

  1. Install and configure Ansible Automation IT Tool
  2. Install Ansible using Python installation manager pip
  3. How to create a host’s Inventory using Ansible
  4. Managing Groups and User creation using Ansible
  5. Creating a Logical volume-based file system using Ansible

We need to install python expect package on the remote servers. Now worries, it’s included in the play.

Copy-paste of Playbook

--- - hosts: "{{ hosts_prompt }}" remote_user: ansible become: yes become_method: sudo vars_prompt: - name: "hosts_prompt" prompt: "hostname or host group need to run with Playbook" private: no tasks: - name: Copy the Splunk Forwarder RPM to remote Servers. copy: src: /home/ansible/splunkforwarder-8.1.0-f57c09e87251-linux-2.6-x86_64.rpm dest: /home/ansible/ owner: ansible group: ansible mode: 0644 - name: Import GnuPG Public Key for Splunk package rpm_key: key: https://docs.splunk.com/images/6/6b/SplunkPGPKey.pub state: present - name: Install Splunk Forwarder RPM package on remote servers. yum: name: - python3-pexpect.noarch - /home/ansible/splunkforwarder-8.1.0-f57c09e87251-linux-2.6-x86_64.rpm state: present - name: Copy the Splunk Forwarder config from your centralized server to remote servers. copy: src: /home/ansible/splunk_forwarder_output/ dest: /opt/splunkforwarder/etc/system/ directory_mode: yes owner: splunk group: splunk mode: 0600 - name: Start Splunk forwarder service. remote_user: ansible become: yes become_method: sudo become_user: splunk expect: command: /opt/splunkforwarder/bin/splunk start --accept-license timeout: 60 responses: (.*)Please enter an administrator username(.*): "admin" (.*)Please enter a new password(.*): "redhat@1020" (.*)Please confirm new password(.*): "redhat@1020" - name: Check Splunk forwarder service. command: /opt/splunkforwarder/bin/splunk status register: service_splunk_status - name: Report Splunk forwarder Status. debug: var: service_splunk_status.stdout_lines ...

Password used in this guide is plain text, if you are consider it to encrypt have a look into this guide.

Output for reference.

[ansible@gateway ~]$ ansible-playbook splunk_forwader_install.yaml hostname or host group need to run with Playbook: spkhosts PLAY [spkhosts] ********************************************************************************************************************************************************************************************************************************************** TASK [Gathering Facts] *************************************************************************************************************************************************************************************************************************************** ok: [192.168.0.222] TASK [Copy the Splunk Forwarder RPM to remote Servers.] ****************************************************************************************************************************************************************************************************** ok: [192.168.0.222] TASK [Import GnuPG Public Key for Splunk package] ************************************************************************************************************************************************************************************************************ ok: [192.168.0.222] TASK [Install Splunk Forwarder RPM package on remote servers.] *********************************************************************************************************************************************************************************************** changed: [192.168.0.222] TASK [Copy the Splunk Forwarder config from your centralized server to remote servers.] ********************************************************************************************************************************************************************** changed: [192.168.0.222] TASK [Start Splunk forwarder service.] *********************************************************************************************************************************************************************************************************************** permissions manually changed: [192.168.0.222] TASK [Check Splunk forwarder service.] *********************************************************************************************************************************************************************************************************************** changed: [192.168.0.222] TASK [Report Splunk forwarder Status.] *********************************************************************************************************************************************************************************************************************** ok: [192.168.0.222] => { "service_splunk_status.stdout_lines": [ "splunkd is running (PID: 11526).", "splunk helpers are running (PIDs: 11532)." ] } PLAY RECAP *************************************************************************************************************************************************************************************************************************************************** 192.168.0.222 : ok=8 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 [ansible@gateway ~]$ 

That’s it, Ansible made our life easier.

Are you looking for Oracle RAC server preparation? Keep in touch you can expect soon. If you need more Ansible relevant articles, you can find at the beginning of this post else scroll little below to find the same.

Conclusion:

Automating RPM installation on the remote servers can be accomplished using a simple playbook. Will come up with more playbook in future. Subscribe to our newsletter to receive the updates.

5 thoughts on “Splunk forwarder installation using Ansible – easy install in 1 min

  1. Thank you for your ansible splunk forwarder installation playbook. I get a warning saying that yum with_items is deprecated. I also hangs when it asks for admin user and password information.

  2. This is a great PB, however, an issue I’ve run into with creating a similar book is during the accept license process, a user name and password are being prompted. I don’t see this addressed in your PB.

    1. @Roy,

      Are you performing this from Splunk user or from root user? Whether your Splunk installation owned by any specific user or it’s owned by root user?

      Thanks & Regards,
      Babin Lonston

Comments are closed.