You can... but it's ugly and error-prone.
The problem with deploying a deploymentclient.conf in an application is that the settings there are overridden by etc/system/local/deploymentclient.conf. So if you can change that (system/local) file, you're in business.
Ansible, Chef, Salt, Puppet, etc. are tools to change the file on the system, which is useful if they are already there, and you are allowed to make a change in the CM tool or can find a sysadmin long enough to explain what you need.
But you have Splunk on the system already, and we can do it in Splunk as a Splunk admin.
1) Create a deploy-client-config app in Splunk. You need 3 things in it (in addition to what comes out of the Blank application template):
bin/remove_deploy_system_setting.[bat|py], a script that (re)moves $SPLUNK_HOME/etc/system/local/deploymentclient.conf and restarts splunk
default/inputs.conf that runs the above script every... say 5 minutes
default/deploymentclient.conf that points at the new DS
2) Use the old deployment server to push this out to everybody (restart splunk after)
3) Create a same-named app on the new deploy server that just has the default/deploymentclient.conf piece (not the script or inputs.conf)
4) Tell the new deploy server to install the new app
A future migration or DS change (such as new https keys) would only require deploying a new version of the "deploy-client-config" app.
--Joe
... View more