Customized community tuning store
When Easy Tune reaches out to retrieve the community curated tuning packs it does so from the Easy Tune_Overrides repository in GitHub. Easy Tune can utilize either the master or the development branch of this repository. Using the development branch, for example, may allow you to try out or contribute to new Tuning Packs still in the pipeline. Easy Tune uses the ‘raw’ version of the repository which normally can take up to 5 minutes to update.
Easy Tune Enterprise can utilize any open repository and branch that conforms to the Community store specification allowing for many more customization scenarios. Using a custom repository will allow your company to maintain strong version control over your custom tuning packs through GitHub’s native version control functionality.
Configuration
Easy Tune gets the current community store from the registry in either the HKEY_CURRENT_USER (HKCU) or HKEY_LOCAL_MACHINE (HKLM) hives. Using the HKCU hive affects only the current user logged into a machine and using HKLM affects all users overriding what is set in HKCU.
Note that if you access Easy Tune from SCOM console installed on multiple machines, each machine will need these registry keys set to access custom community stores.
Registry Path:
[HKEY_LOCAL_MACHINE\SOFWARE\CookdownManagementPacks\EasyTune]
[HKEY_CURRENT_USER\SOFWARE\CookdownManagementPacks\EasyTune]
To specify a store, create a GitHubRepo string entry. This entry does not exist in the registry by default. After you have created the entry set the string value to the desired ‘raw’ repository and branch. For example:
https://raw.githubusercontent.com/cookdown/easytune_overrides/development/
If using Easy Tune Enterprise, you can specify a custom repository using this format:
https://raw.githubusercontent.com/user/repository/branch/
If not configured, then the master branch of the easytune_overrides repository is used:
https://raw.githubusercontent.com/cookdown/easytune_overrides/master/ (via http://go.cookdown.com/easytune-repo-base)
Implementation
There are many different ways to approach implementing these settings across an enterprise and a lot will depend on your internal policies and procedures, however, we have the following examples that can act as a starting point for automation.
PowerShell
$Path = 'HKCU:\SOFTWARE\CookdownManagementPacks\EasyTune' If (-not (Test-Path -Path $Path)) { New-Item -Path $Path -Force } #Check to see if the Key exists, if not create it and any missing parent keys. New-ItemProperty -Path $Path -Name 'GitHubRepo' -PropertyType 'String' -Value 'https://raw.githubusercontent.com/companyinc/repository/tree/' -Force #Create new string property with target repository, overwriting if it exists already.
Group Policy
Item level targeting can be used to push different repositories or branches to different groups: