Deployment Architecture
Highlighted

DeployedApplication - Failed to install ... reason=Application does not exist: APPNAME

Splunk Employee
Splunk Employee

We are managing our Index Cluster Apps by deploying them to the Cluster Master's "master-apps" directory. Here is the CM's deploymentclient.conf:

[deployment-client]
repositoryLocation = $SPLUNK_HOME/etc/master-apps
serverRepositoryLocationPolicy = rejectAlways
[target-broker:deploymentServer]
phoneHomeIntervalInSecs = 60
targetUri = https://hostname:8089

While the apps are actually being deployed without issue, we are seeing the following errors in splunkd.log for every app:

04-17-2019 11:01:35.571 -0500 INFO  DeployedApplication - Installing app=APPNAME to='/opt/splunk/etc/master-apps/APPNAME'
04-17-2019 11:01:35.576 -0500 ERROR DeployedApplication - Failed to install app=/opt/splunk/etc/master-apps/APPNAME; reason=Application does not exist: APPNAME
04-17-2019 11:01:35.576 -0500 ERROR DeployedServerclass - name=ClusterMaster Failed to install app=APPNAME

How do we correct this?

Jacob
Sr. Technical Support Engineer
Highlighted

Re: DeployedApplication - Failed to install ... reason=Application does not exist: APPNAME

Splunk Employee
Splunk Employee

In serverclass.conf, please include the following at the top level for the Cluster Master's server class:

stateOnClient = noop

More info on this setting:

Spec file: https://docs.splunk.com/Documentation/Splunk/latest/Admin/Serverclassconf

stateOnClient = enabled | disabled | noop
* If set to "enabled", sets the application state to enabled on the client,
  regardless of state on the deployment server.
* If set to "disabled", set the application state to disabled on the client,
  regardless of state on the deployment server.
* If set to "noop", the state on the client will be the same as on the
  deployment server.
* Can be overridden at the serverClass level and the serverClass:app level.
* Defaults to enabled.

In your specific example, I would recommend the following settings be used at the top level of the Cluster Master's server class:

[serverClass:ClusterMasters]
stateOnClient = noop
restartSplunkWeb = 0
restartSplunkd = 0
[serverClass:ClusterMasters:app:APPNAME]
[serverClass:ClusterMasters:app:APPNAME2]
[serverClass:ClusterMasters:app:APPNAME3]
[serverClass:ClusterMasters:app:APPNAME4]
Jacob
Sr. Technical Support Engineer