Appendix 3: Enhanced Inventory Gathered by Agent

FlexNet Manager Suite 2020 R1 (On-Premises)
As well as the high-level data gathered from the Microsoft Azure connection, FlexNet inventory agent (version 13.1 or later) gathers addition inventory data for each Azure instance where FlexNet inventory agent is locally installed. To do so, FlexNet inventory agent access the following Azure-internal URL:
  • curl -H Metadata:true "http://169.254.169.254/metadata/instance?api-version=YYYY-MM-DD" — you must replace YYYY-MM-DD with the api-version date to return the unique identifier for the Azure instance. For example, curl -H Metadata:true "http://169.254.169.254/metadata/instance?api-version=2018-10-01".
  • To view the api-version dates enter curl -H Metadata:true "http://169.254.169.254/metadata/instance" which will return an error message which identifies the api-versions. For example:
    {
    "error": "Bad request. api-version was not specified in the request. For more information refer to aka.ms/azureimds", "newest-versions": [
    "2018-10-01", 
    "2018-04-02", 
    "2018-02-01" 
    ] 
    } 
  • http://169.254.169.254/metadata/instance returns a JSON-formatted value containing data about the instance where FlexNet inventory agent is locally installed. For example:
    {
        "devpayProductCodes" : null,
        "marketplaceProductCodes" : [ "1abc2defghijklm3nopqrs4tu" ],
        "availabilityZone" : "us-west-2b",
        "privateIp" : "10.158.112.84",
        "version" : "2017-09-30",
        "instanceId" : "i-1234567890abcdef0",
        "billingProducts" : null,
        "instanceType" : "t2.micro",
        "accountId" : "123456789012",
        "imageId" : "ami-5fb8c835",
        "pendingTime" : "2018-11-19T16:32:11Z",
        "architecture" : "x86_64",
        "kernelId" : null,
        "ramdiskId" : null,
        "region" : "us-west-2"
    }
These two data points are then embedded within the normal .ndi inventory file as a pseudo-hardware WMI class called MGS_CloudMetadata. The class looks similar to this example (lines wrapped for presentation):
<Hardware class="MGS_CloudMetadata" Name="ec2amaz-vrkiu0p" Evidence="metadata">
    <Property Name="instance-id" Value="i-1234567890abcdef0" 
              Evidence="/latest/meta-data/instance-id"/>
    <Property Name="document" Value="ewogICJwcml2YXRlSXAiIDogIjE3Mi4zMS4yLjExNiIs...." 
              Evidence="/latest/dynamic/instance-identity/document"/>
</Hardware>
After a full inventory import, these details are eventually saved in the CloudServiceInstance table in the compliance database.

FlexNet Manager Suite (On-Premises)

2020 R1