Skip to content

Commit

Permalink
Lot's of improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
root committed Nov 24, 2015
1 parent 437315a commit 5ceaf72
Show file tree
Hide file tree
Showing 27 changed files with 354 additions and 14 deletions.
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,4 @@
* Create group_vars template

* Run playbooks
ansible-playbook splunk_configure_searchheads.yml
ansible-playbook splunk_configure_indexer.yml

18 changes: 18 additions & 0 deletions filter_plugins/create_distsearch_serverlist.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def create_distsearch_serverlist (serverlist):

servers_normalized = []

for item in serverlist:
if type(item) is str:
item=[item]
for sublist in item:
servers_normalized.append(sublist)

servers = []
[servers.append(item) for item in servers_normalized if item not in servers]

return servers

class FilterModule(object):
def filters(self):
return {'create_distsearch_serverlist': create_distsearch_serverlist}
Binary file added filter_plugins/create_distsearch_serverlist.pyc
Binary file not shown.
21 changes: 21 additions & 0 deletions filter_plugins/create_distsearch_servers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
def create_distsearch_servers (serverlist):

servers_normalized = []

for item in serverlist:
if type(item) is str:
item=[item]
for sublist in item:
servers_normalized.append(sublist)

servers = []
[servers.append(item) for item in servers_normalized if item not in servers]


servers = [server+":8089" for server in servers ]
servers = ', '.join(servers)
return servers

class FilterModule(object):
def filters(self):
return {'create_distsearch_servers': create_distsearch_servers}
Binary file added filter_plugins/create_distsearch_servers.pyc
Binary file not shown.
44 changes: 44 additions & 0 deletions group_vars/splunk_deployer
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---

#####################################################################################################################
# General Installation Variables
#####################################################################################################################
splunk_conf_path: /opt/splunk/etc/system/local

#####################################################################################################################
# Configurations for Splunk web.conf
#####################################################################################################################

splunk_web_conf:
settings:
enableSplunkWebSSL: 1
updateCheckerBaseURL: 0

#####################################################################################################################
# Configurations for Splunk outputs.conf
#####################################################################################################################

splunk_outputs_conf:
tcpout:
defaultGroup: production
target_group:
production:
useACK: true
indexerDiscovery: production
sslPassword: password
sslCertPath: $SPLUNK_HOME/etc/auth/server.pem
sslRootCAPath: $SPLUNK_HOME/etc/auth/ca.pem
indexer_discovery:
production:
pass4SymmKey: changeme
master_uri: dynamic

#####################################################################################################################
# Configurations for Splunk server.conf
####################################################################################################################

splunk_server_conf:
general:
site: site0
license:
master_uri: dynamic
44 changes: 44 additions & 0 deletions group_vars/splunk_deploymentserver
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---

#####################################################################################################################
# General Installation Variables
#####################################################################################################################
splunk_conf_path: /opt/splunk/etc/system/local

#####################################################################################################################
# Configurations for Splunk web.conf
#####################################################################################################################

splunk_web_conf:
settings:
enableSplunkWebSSL: 1
updateCheckerBaseURL: 0

#####################################################################################################################
# Configurations for Splunk outputs.conf
#####################################################################################################################

splunk_outputs_conf:
tcpout:
defaultGroup: production
target_group:
production:
useACK: true
indexerDiscovery: production
sslPassword: password
sslCertPath: $SPLUNK_HOME/etc/auth/server.pem
sslRootCAPath: $SPLUNK_HOME/etc/auth/ca.pem
indexer_discovery:
production:
pass4SymmKey: changeme
master_uri: dynamic

#####################################################################################################################
# Configurations for Splunk server.conf
####################################################################################################################

splunk_server_conf:
general:
site: site0
license:
master_uri: dynamic
23 changes: 18 additions & 5 deletions group_vars/splunk_dmc
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,9 @@ splunk_outputs_conf:
useACK: true
indexerDiscovery: production
sslPassword: password
sslCertPath: $SPLUNK_HOME/etc/auth/server.pem
sslRootCAPath: $SPLUNK_HOME/etc/auth/ca.pem
sslCertPath: $SPLUNK_HOME/etc/auth/server.pem
sslVerifyServerCert: true
indexer_discovery:
production:
pass4SymmKey: changeme
Expand All @@ -45,7 +46,19 @@ splunk_server_conf:
sslKeysfilePassword: $1$nhb+jVVyTmEL
license:
master_uri: dynamic
clustering:
mode: searchhead
master_uri: dynamic
pass4SymmKey: changeme

#####################################################################################################################
# Configurations for Splunk distsearch.conf
####################################################################################################################

splunk_distsearch_conf:
distributedSearch:
servers:
- "{{ groups['splunk_indexer'] }}"
- "{{ groups['splunk_licensemaster'] }}"
- "{{ groups['splunk_masternode'] }}"
- "{{ groups['splunk_deploymentserver'] }}"
- "{{ groups['splunk_deployer'] }}"
- "{{ groups['splunk_shcmember'] }}"
- "{{ groups['splunk_heavyforwarder'] }}"

44 changes: 44 additions & 0 deletions group_vars/splunk_heavyforwarder
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---

#####################################################################################################################
# General Installation Variables
#####################################################################################################################
splunk_conf_path: /opt/splunk/etc/system/local

#####################################################################################################################
# Configurations for Splunk web.conf
#####################################################################################################################

splunk_web_conf:
settings:
enableSplunkWebSSL: 1
updateCheckerBaseURL: 0

#####################################################################################################################
# Configurations for Splunk outputs.conf
#####################################################################################################################

splunk_outputs_conf:
tcpout:
defaultGroup: production
target_group:
production:
useACK: true
indexerDiscovery: production
sslPassword: password
sslCertPath: $SPLUNK_HOME/etc/auth/server.pem
sslRootCAPath: $SPLUNK_HOME/etc/auth/ca.pem
indexer_discovery:
production:
pass4SymmKey: changeme
master_uri: dynamic

#####################################################################################################################
# Configurations for Splunk server.conf
####################################################################################################################

splunk_server_conf:
general:
site: site0
license:
master_uri: dynamic
2 changes: 1 addition & 1 deletion group_vars/splunk_searchhead
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ splunk_outputs_conf:
indexer_discovery:
production:
pass4SymmKey: SecretKey
master_uri: "https://clustermaster:8089"
master_uri: dynamic

#####################################################################################################################
# Configurations for Splunk server.conf
Expand Down
44 changes: 44 additions & 0 deletions group_vars/splunk_shcmember
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---

#####################################################################################################################
# General Installation Variables
#####################################################################################################################
splunk_conf_path: /opt/splunk/etc/system/local

#####################################################################################################################
# Configurations for Splunk web.conf
#####################################################################################################################

splunk_web_conf:
settings:
enableSplunkWebSSL: 1
updateCheckerBaseURL: 0

#####################################################################################################################
# Configurations for Splunk outputs.conf
#####################################################################################################################

splunk_outputs_conf:
tcpout:
defaultGroup: production
target_group:
production:
useACK: true
indexerDiscovery: production
sslPassword: password
sslCertPath: $SPLUNK_HOME/etc/auth/server.pem
sslRootCAPath: $SPLUNK_HOME/etc/auth/ca.pem
indexer_discovery:
production:
pass4SymmKey: changeme
master_uri: dynamic

#####################################################################################################################
# Configurations for Splunk server.conf
####################################################################################################################

splunk_server_conf:
general:
site: site0
license:
master_uri: dynamic
8 changes: 7 additions & 1 deletion hosts_production.template
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
[splunk_repository]
localhost ansible_connection=local

[splunk_searchhead]
[splunk_shcmember]
searchhead1.private.domain
searchhead2.private.domain
searchhead3.private.domain

[splunk_searchhead]
searchhead.private.domain

[splunk_indexer]
indexer1.private.domain
indexer2.private.domain
Expand Down Expand Up @@ -48,3 +51,6 @@ searchhead3.private.domain
masternode.private.domain
indexer1.private.domain
indexer2.private.domain

[splunk_heavyforwarder]
heavyforwarder1.private.domain
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
#####################################################################################################################
# Distribute Keys for Distributed Search
#####################################################################################################################

- name: Create distServerKeys Directory
local_action: "command ssh splunk@{{ item }} 'mkdir -p {{ splunk_installation.splunk_home_path }}/etc/auth/distServerKeys/{{ inventory_hostname }}'"
with_items: "{{ splunk_distsearch_conf.distributedSearch.servers | create_distsearch_serverlist }}"

- name: Copy Keys for distributed search
local_action: "command scp {{ splunk_repository.repository_root }}/distServerKeys/{{ inventory_hostname }}/trusted.pem splunk@{{ item }}:{{ splunk_installation.splunk_home_path }}/etc/auth/distServerKeys/{{ inventory_hostname }}/trusted.pem"
with_items: "{{ splunk_distsearch_conf.distributedSearch.servers | create_distsearch_serverlist }}"

2 changes: 2 additions & 0 deletions roles/distributed_search/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
- include: distribute_distsearch_trustedkey.yml
45 changes: 45 additions & 0 deletions roles/distsearch_conf/tasks/distsearch_conf_distributedSearch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
#####################################################################################################################
# Configurations for Splunk distsearch.conf
#####################################################################################################################

#####################################################################################################################
# [distributedSearch]
#####################################################################################################################

# disabled

- name: Set disable
ini_file: dest="{{ splunk_conf_path }}/distsearch.conf"
section=distributedSearch
option=disabled
value={{ splunk_distsearch_conf.distributedSearch.disabled }}
state=present
when: splunk_distsearch_conf.distributedSearch.disabled is defined and
splunk_distsearch_conf.distributedSearch.disabled == true

- name: Unset disable (default)
ini_file: dest="{{ splunk_conf_path }}/distsearch.conf"
section=distributedSearch
option=disabled
state=absent
when: splunk_distsearch_conf.distributedSearch.disabled is undefined or
splunk_distsearch_conf.distributedSearch.disabled == false

# server

- name: "Set server"
ini_file: dest={{ splunk_conf_path }}/distsearch.conf
section=distributedSearch
option=servers
value="{{ splunk_distsearch_conf.distributedSearch.servers | create_distsearch_servers }}"
state=present
when: splunk_distsearch_conf.distributedSearch.servers is defined
tags: test

- name: "Unset server (default)"
ini_file: dest={{ splunk_conf_path }}/distsearch.conf
section=distributedSearch
option=server
state=absent
when: splunk_distsearch_conf.distributedSearch.servers is undefined
14 changes: 14 additions & 0 deletions roles/distsearch_conf/tasks/distsearch_conf_touch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
#####################################################################################################################
# Configurations for Splunk distsearch.conf
#####################################################################################################################

# touch

- name: Touch distsearch.conf
file: path={{ splunk_conf_path }}/distsearch.conf
owner=splunk
group=splunk
mode=600
state=touch

4 changes: 4 additions & 0 deletions roles/distsearch_conf/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
- include: distsearch_conf_touch.yml
- include: distsearch_conf_distributedSearch.yml

1 change: 0 additions & 1 deletion roles/indexer/tasks/main.yml

This file was deleted.

Empty file removed roles/licensemaster/tasks/main.yml
Empty file.
3 changes: 1 addition & 2 deletions roles/outputs_conf/tasks/outputs_conf_tcpout_targetgroup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
splunk_outputs_conf.tcpout.target_group.{{ item.key }}.useACK == true
tags: output_tcpout.target_group_useAck


- name: "Unset tcpout:target_group useACK (default)"
ini_file: dest={{ splunk_conf_path }}/outputs.conf
section=tcpout:{{ item.key }}
Expand Down Expand Up @@ -151,7 +150,7 @@
- name: "Unset tcpout:target_group sslVerifyServerCert (default)"
ini_file: dest={{ splunk_conf_path }}/outputs.conf
section=tcpout:{{ item.key }}
option=sslRootCAPath
option=sslVerifyServerCert
state=absent
with_dict: "{{ splunk_outputs_conf.tcpout.target_group }}"
when: splunk_outputs_conf.tcpout.target_group.{{ item.key }}.sslVerifyServerCert is undefined or
Expand Down
1 change: 0 additions & 1 deletion roles/searchhead/tasks/main.yml

This file was deleted.

Loading

0 comments on commit 5ceaf72

Please sign in to comment.