I done this once before fairly recently. In my case I expaned from a all-in-one system to two distributed search groups containing one Search and three indexers.
Once the decision has been made for which server would be the licensing master. I would install my license(s) on my Search Head(licensing master), delete the default pool, create new licenseing pools.
Two licensing pool in my case.
Edited one license pool to accept any indexer that connects. You may want to create a small default pool for staging.
After configuring my license master. On each indexer and search instance click changed to slave or designate a different splunk insetance under Manager>> Licensing, changing the current license manager last. Designated the Master license server by ip:port, verifying that each instance has connected to the license master before continuing.
Another options would be to create a app. I've never done any real testing, so I'd recommend preforming this in a lab or test environment.
Add license to your license Master
Create licenseing pools
Go to each splunk instance (licensing slave) copy the guid from the the server.conf file located in %splunk%\etc\system\local.
On the master in the add the guids (from each license slave) to the [lmpool: ] stanza in the server.conf. The slaves will automaticlly be added to that pool
guid will look something like 85A846D8-2538B-41B1-DB0A-786467DF10E
[lmpool:mygroup]
description = mygroup
quota = 214748364800
slaves = <guid1>,<guid2>,<guid3>
stack_id = enterprise
create a deployment app and editing the server.conf file adding the [license] stanza with the master_uri setting.
using the Deployment server deploy the app contain master_uri setting to your slaves.
Hope this helps
... View more