AS3
48 TopicsHow to manage AS3 BIG-IQ deployments and shared objects
Hi, I have a question around how to utilize AS3 and BIG-IQ. Currently I am deploying AS3 via BIG-IQ to get the application statistics in BIG-IQ. However, I cannot use resources created in BIG-IQ within the AS3 declarations. For example, I do not want to store my ssl/tls certificates within the AS3 json that will be in public (-ish) revision control. Likewise, I want the iRules created as on BIG-IQ that can be shared between virtual servers/applications and not squashed on an unreadable line in the AS3 json. However, it appears BIG-IQ will only sync these objects to BIG-IP when you create a virtual server within BIG-IQ (outside of AS3). This leads to the AS3 declaration failing as AS3 can't find these /Common/ objects on the BIG-IP at deployment time. Also, it is unclear how to create applications (again AS3 via BIG-IQ) and pin them to different traffic-groups for an active-active BIG-IP setup. It seems all AS3 deployments are stuck the traffic-group-1. How are people currently managing referencing "shared" things such as iRules/certificates/policies and pushing them with BIG-IQ in a AS3-only world? Does anyone have any good overviews of this level of managing things? Documentation I've seen seems specific to just using AS3 or just using BIG-IQ deployments, etc.460Views2likes1CommentAn example of an AS3 Rest API call to create a GSLB configuration on BIG-IP.
Hi everyone, Below you can find an example of an AS3 Rest API call that creates a simple GSLB configuration on BIG-IP devices. The main purpose of this article is to share this configuration with others. Of course, on different sites (github, etc) you can find different bits of data, but I think this example will be useful, because it contains all the necessary information about how to create different GSLB objects at the same time, such as: Data Centers (DCs), Servers, Virtual Servers (VSs), Wide IPs, pools and more over. { "class": "AS3", "declaration": { "class": "ADC", "schemaVersion": "3.21.0", "id": "GSLB_test", "Common": { "class": "Tenant", "Shared": { "class": "Application", "template": "shared", "DC1": { "class": "GSLB_Data_Center" }, "DC2": { "class": "GSLB_Data_Center" }, "device01": { "class": "GSLB_Server", "dataCenter": { "use": "DC1" }, "virtualServers": [ { "name": "/ocp/Shared/ingress_vs_1_443", "address": "A.B.C.D", "port": 443, "monitors": [ { "bigip": "/Common/custom_icmp_2" } ] } ], "devices": [ { "address": "A.B.C.D" } ] }, "device02": { "class": "GSLB_Server", "dataCenter": { "use": "DC2" }, "virtualServers": [ { "name": "/ocp2/Shared/ingress_vs_2_443", "address": "A.B.C.D", "port": 443, "monitors": [ { "bigip": "/Common/custom_icmp_2" } ] } ], "devices": [ { "address": "A.B.C.D" } ] }, "dns_listener": { "class": "Service_UDP", "virtualPort": 53, "virtualAddresses": [ "A.B.C.D" ], "profileUDP": { "use": "custom_udp" }, "profileDNS": { "use": "custom_dns" } }, "custom_dns": { "class": "DNS_Profile", "remark": "DNS Profile test", "parentProfile": { "bigip": "/Common/dns" } }, "custom_udp": { "class": "UDP_Profile", "datagramLoadBalancing": true }, "testpage_local": { "class": "GSLB_Domain", "domainName": "testpage.local", "resourceRecordType": "A", "pools": [ { "use": "testpage_pool" } ] }, "testpage_pool": { "class": "GSLB_Pool", "resourceRecordType": "A", "members": [ { "server": { "use": "/Common/Shared/device01" }, "virtualServer": "/ocp/Shared/ingress_vs_1_443" }, { "server": { "use": "/Common/Shared/device02" }, "virtualServer": "/ocp2/Shared/ingress_vs_2_443" } ] } } } } } P.S. The AS3 scheme guide was very helpful: https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/refguide/schema-reference.html704Views1like2Comments