Deployment Architecture

targetRepositoryLocation in serverclass.conf - Global only or can it be overridden?

msarro
Builder

Pretty simple question. According to the serverclass.conf spec here:
http://docs.splunk.com/Documentation/Splunk/6.0/Admin/Serverclassconf
that some global properties can be overridden at lower levels (serverClass or app).

I'd like to override targetRepositoryLocation for one specific serverClass (pooled search heads vs non-pooled search heads are each in their own serverClass and have different */apps directories). Can this be done? Despite saying "all overridable properties are marked as such" not a lot seems to be marked as whether or not it is overridable.

1 Solution

yannK
Splunk Employee
Splunk Employee

You can redefine per class.

I saw an example where each class was linked to a folder, then all apps to deploy were store per folder, and deployed using a method like:

[serverClass:myclass]
targetRepositoryLocation=/mylocation/myclass/
whitelist.0=mywhitelist
[serverClass:myclass:app:*]

View solution in original post

woodcock
Esteemed Legend

There is a bug in serverclass.spec that causes Splunk Deployment Server to give the following FALSE error logs:

Checking conf files for problems...
                Invalid key in stanza [serverClass:site1_indexers] in /opt/splunk/etc/system/local/serverclass.conf, line XXX: targetRepositoryLocation  (value:  $SPLUNK_HOME/etc/master-apps).
                Invalid key in stanza [serverClass:site1_indexers] in /opt/splunk/etc/system/local/serverclass.conf, line XXX+1: targetRepositoryLocationPolicy  (value:  rejectAlways).

You can confirm that it actually works by running /opt/splunk/bin/splunk btool serverclass list --debug| grep targetRepository which will give you this (which clearly indicates functional configurations):

/opt/splunk/etc/system/default/serverclass.conf targetRepositoryLocation = $SPLUNK_HOME/etc/apps
/opt/splunk/etc/system/local/serverclass.conf   targetRepositoryLocation = $SPLUNK_HOME/etc/master-apps
/opt/splunk/etc/system/local/serverclass.conf   targetRepositoryLocationPolicy = rejectAlways

You can also confirm by checking the target Cluster Master destination which will clearly show that it does indeed pull in CM apps to $SPLUNK_HOME/etc/apps/ as well as Indexer apps (via a different serverclass using the targetRepository* settings) to $SPLUNK_HOME/etc/master-apps/.

It is unfortunate the both the documentation and the spec files are in error. I am going to open a support case to get this mess cleared up.

0 Karma

yannK
Splunk Employee
Splunk Employee

You can redefine per class.

I saw an example where each class was linked to a folder, then all apps to deploy were store per folder, and deployed using a method like:

[serverClass:myclass]
targetRepositoryLocation=/mylocation/myclass/
whitelist.0=mywhitelist
[serverClass:myclass:app:*]

msarro
Builder

Great, that's all I needed!

0 Karma
Get Updates on the Splunk Community!

Prove Your Splunk Prowess at .conf25—No Prereqs Required!

Your Next Big Security Credential: No Prerequisites Needed We know you’ve got the skills, and now, earning the ...

Splunk Observability Cloud's AI Assistant in Action Series: Observability as Code

This is the sixth post in the Splunk Observability Cloud’s AI Assistant in Action series that digs into how to ...

Splunk Answers Content Calendar, July Edition I

Hello Community! Welcome to another month of Community Content Calendar series! For the month of July, we will ...