TrueSight Server Automation (TSSA) allows servers to be "enrolled" more than once. The only requirements are that the Server name be unique. Servers enrolled by more than one name can cause issues when running jobs, especially when the same server is included multiple times in the same job run due to multiple enrollments in TSSA.
Common names servers are often enrolled as include;
- FQDN - Typically this is the name most sites use normally
- Short Host Name - With no domain name
- IP Address
- DNS Alias
- Secondary End Point Names - DB network name, Storage network name, etc
If you search here on BMC Communities, you will find several postings on this issue with no real solution. The problem being there is no accurate single server "ID" available to correlate enrolled servers by. We had some success here at our site comparing ??TARGET.NAME?? to ??TARGET.FQ_HOST??. However not 100% of our servers use the same DNS name as used in FQ_HOST. I suspect that is also true for most customer sites as well. So a different method was needed.
The solution we arrived at was to have each server create a empty file called "TSSA-??TARGET.NAME??" in a existing location on each server endpoint, /tmp on Linux/Unix and C:\temp on Windows. We choose ??TARGET.NAME?? as it will be a unique name in TSSA. We can then create a normal TSSA compliance policy to verify if the count of these TSSA-* files is exactly 1 on each server end point. If the count is greater than 1, then we have detected a server that is enrolled in TSSA more than once. And we can easily identify the enrollment names by looking at the TSSA-* files on the server.
Here's how it looks when you review a compliance job run;
It appears we have 6 servers in the group, however 1 server has been enrolled 3 times. Once by IP address, once by short host name, and once using FQDN. Our compliance run has detected them as non-compliant and selecting the "count File:/tmp/TSSA-** =1 where" line in red for one of the non-compliant servers shows the "Left Value" count to be 3. Confirming that we detected this server has been enrolled 3 times in TSSA.
The compliance rule to do this is really simple;
For those familiar with TSSA compliance rules, you may notice there is both a check for count = 1 and also a foreach loop to detect the compliant status. Using just the count would be sufficient to determine compliance. The foreach rule was added so you can "see" the names of the TSSA-* files in the job run results view for a server that is non-compliant. Simply so you don't actually have to go look for the TSSA-* files, they will be listed in the compliance run results view for the any non-compliant components.
The Component Template we used as a proof of concept is available as a ZipKit here: Blade ZipKit - TSSA Enrollment
This method of detecting "Multiple Server Enrollment" has proven to be very effective in helping us here at Customer Zero clean up our multiple enrolled servers in TSSA.