Forum Discussion

tywjohn's avatar
tywjohn
Icon for Nimbostratus rankNimbostratus
Jul 25, 2024

AS3 GSLB_Pool - How to add members?

I am using AS3 to deploy LTM and DNS configs to a pair of standalone BIG-IPs in a DNS Sync Group.

Everything works and I can add a virtual server to a GSLB_Pool if that virtual server is defined in this AS3 declaration.

However, I need to add a virtual server to the pool that is in the other BIG-IP, configured as a server in a second data center. Auto discovery is configured but AS3 won't accept the second pool member saying that the object doesn't exist.

See the snippet below. Obviously I haven't posted the whole thing but the red section is what fails. vs_prod_dc1 is defined in this declaration (redacted) but vs_prod_dc2 is defined in another declaration because it's for a different BIG-IP.

What am I missing here?

 

 

"DC1": {
    "class": "GSLB_Data_Center"
},
"DC2": {
    "class": "GSLB_Data_Center"
},
"F5-A": {
    "class": "GSLB_Server",
    "dataCenter": {
        "use": "DC1"
    },
    "devices": [
        {
            "address": "172.16.20.1"
        }
    ],
    "virtualServerDiscoveryMode": "enabled-no-delete"
},
"F5-B": {
    "class": "GSLB_Server",
    "dataCenter": {
        "use": "DC2"
    },
    "devices": [
        {
            "address": "172.16.20.2"
        }
    ],
    "virtualServerDiscoveryMode": "enabled-no-delete"
}



"dns_pool_prod": {
    "class": "GSLB_Pool",
    "resourceRecordType": "A",
    "members": [
        {
            "server": {
                "use": "/Common/Shared/F5-A"
            },
            "virtualServer": {
                "use": "vs_prod_dc1"
            }
        },
        {
            "server": {
                "use": "/Common/Shared/F5-B"
            },
            "virtualServer": {
                "use": "vs_prod_dc2"
            }
        }
    ]
}

2 Replies

  • This is resolved. For anyone stumbling across this, "use" appears to be for when the virtual server is defined locally in the AS3 declaration. If using autodiscovery, you can reference virtual servers like this:

          {
                "server": {
                    "use": "/Common/Shared/F5-B"
                },
                "virtualServer": "/Tenant/App/vs_prod_dc2"
            }

     

    • whisperer's avatar
      whisperer
      Icon for MVP rankMVP

      Thanks for posting the resolution to this, as it may help others!