Die Integration von VMware Aria Automation in Avi Load Balancer unterstützt die Zuteilung virtueller IP-Adressen des virtuellen Diensts über Avi Load Balancer IPAM. Sie können die IP auch innerhalb der Vorlage oder als Eingabe angeben.
Beachten Sie beim Entwerfen Ihrer Vorlage, dass bestimmte Eigenschaften, die unter Umständen nicht als notwendig gekennzeichnet sind, je nach Anwendungsfall dennoch erforderlich sind, damit die Vorlage funktioniert. Die folgenden Vorlagenbeispiele enthalten Anleitungen zu verschiedenen IPAM-, vSphere- und NSX Cloud-Szenarien.
In bestimmten Vorlagenbeispielen mit dem Attribut tier1_lr
kann der Name tier1_lr
nur verwendet werden, wenn der Name des logischen Tier-1-Routers mit der ID identisch ist. Andernfalls müssen Sie den vollständigen Pfad des logischen Tier-1-Routers verwenden, wie z. B. /infra/tier-1s/20f6a214-e8b3-4bb3-aaeb-6c06639ada23.
Bevor Sie beginnen
- Konfigurieren Sie das Subnetz und IPAM-Profil im Avi Load Balancer-Controller.
Weitere Informationen finden Sie unter NSX Advanced Load Balancer-IPAM und -DNS.
- Konfigurieren Sie VMware Aria Automation.
- Erstellen Sie Ihr Avi Load Balancer-Cloud-Konto in Automation Assembler, legen Sie ein Projekt an und fügen Sie Ihre Cloud-Zonen hinzu.
Weitere Informationen hierzu finden Sie unter Erstellen eines VMware Avi Load Balancer-Cloud-Kontos.
- Konfigurieren Sie das Netzwerk für die Bereitstellung.
Navigieren Sie zu
, suchen Sie nach dem für die Bereitstellung zu verwendenden Netzwerk und konfigurieren Sie das IPv4-/IPv6-CIDR und DNS-Server.Weitere Informationen hierzu finden Sie unter Netzwerkressourcen in VMware Aria Automation.
- Konfigurieren Sie die Image-Zuordnung.
Navigieren Sie zu
und folgen Sie den Eingabeaufforderungen auf dem Bildschirm, um eine neue Image-Zuordnung zu erstellen.Weitere Informationen hierzu finden Sie unter Weitere Informationen zu Image-Zuordnungen in VMware Aria Automation.
- Konfigurieren Sie das Netzwerkprofil.
Navigieren Sie zu
und folgen Sie den Eingabeaufforderungen auf dem Bildschirm, um ein neues Netzwerkprofil zu erstellen.Weitere Informationen hierzu finden Sie unter Weitere Informationen zu Netzwerkprofilen in VMware Aria Automation.
- Erstellen Sie Ihr Avi Load Balancer-Cloud-Konto in Automation Assembler, legen Sie ein Projekt an und fügen Sie Ihre Cloud-Zonen hinzu.
Statische IP-Adresse in VS-VIP
Diese Avi Load Balancer-Beispielvorlage enthält einen virtuellen Dienst, eine VS-VIP und einen Pool. Dem Pool ist ein vSphere-VM-Cluster zugewiesen. Die VS-VIP verfügt über eine statische IP-Adresse.
formatVersion: 1 inputs: count: type: integer title: vm-count default: 2 resources: Idem_AVILB_APPLICATIONS_POOL_1: type: Idem.AVILB.APPLICATIONS.POOL properties: name: pool-${uuid()} account: Avi default_server_port: 8000 networks: - network_ref: ${resource.Cloud_vSphere_Network_1.resourceName} health_monitor_refs: - System-HTTP servers: ${map_to_object(resource.Cloud_vSphere_Machine_1[*].address, "ip", "addr")} Idem_AVILB_APPLICATIONS_VIRTUAL_SERVICE_1: type: Idem.AVILB.APPLICATIONS.VIRTUAL_SERVICE properties: name: vs-${uuid()} account: Avi traffic_enabled: true services: - port: 8000 pool_ref: ${resource.Idem_AVILB_APPLICATIONS_POOL_1.name} vsvip_ref: ${resource.Idem_AVILB_APPLICATIONS_VS_VIP_1.name} Idem_AVILB_APPLICATIONS_VS_VIP_1: type: Idem.AVILB.APPLICATIONS.VS_VIP properties: name: vip-${uuid()} account: Avi vip: - enabled: true ip_address: addr: 10.202.20.80 type: V4 Cloud_vSphere_Machine_1: type: Cloud.vSphere.Machine properties: count: ${input.count} image: webserver cpuCount: 1 totalMemoryMB: 1024 networks: - network: ${resource.Cloud_vSphere_Network_1.id} assignment: static Cloud_vSphere_Network_1: type: Cloud.vSphere.Network properties: networkType: existing
Avi Load Balancer IPAM in VS-VIP für vCenter Cloud
Diese Avi Load Balancer-Beispielvorlage ist für vCenter Cloud vorgesehen.
Die VS-VIP-Ressource definiert den Abschnitt ipam_network_subnet
mit network ref
und subnet
. Mithilfe dieser Definition teilt Avi Load Balancer eine IP-Adresse aus dem definierten Avi Load Balancer IPAM-Profil zu, wenn die VS-VIP im Avi Load Balancer-Controller erstellt wird.
Der definierte Cluster von Poolmitgliedern verwendet eine statische Netzwerkzuweisung. In Automation Assembler konfigurieren Sie ein Netzwerk, wie z. B. Domäne, IPv4-/IPv6-CIDR, ein Standard-Gateway und DNS-Server. Anschließend richten Sie ein Netzwerkprofil mit einem Netzwerkbereich ein, der dieses Netzwerk verwendet. Beim Erstellen von Clustern werden diesen die IP-Adressen aus dem Netzwerkbereich zugeteilt.
inputs: count: type: integer title: count default: 2 resources: Allocations_CustomNaming_1: type: Allocations.CustomNaming properties: resourceType: Generic numberOfNamesToGenerate: 5 templateName: aviBP Idem_AVILB_PROFILES_HEALTH_MONITOR_1: type: Idem.AVILB.PROFILES.HEALTH_MONITOR properties: name: test-mon-${resource.Allocations_CustomNaming_1.selectedNames[0]} type: HEALTH_MONITOR_PING account: aviAcct is_federated: false monitor_port: 8000 send_interval: 8 receive_timeout: 4 successful_checks: 4 failed_checks: 4 Idem_AVILB_APPLICATIONS_POOL_1: type: Idem.AVILB.APPLICATIONS.POOL metadata: layoutPosition: - 0 - 2 properties: name: test-pool-${resource.Allocations_CustomNaming_1.selectedNames[0]} account: aviAcct lb_algorithm: LB_ALGORITHM_ROUND_ROBIN default_server_port: 8000 networks: - network_ref: ${resource.Cloud_vSphere_Network_1.resourceName} health_monitor_refs: - ${resource.Idem_AVILB_PROFILES_HEALTH_MONITOR_1.name} servers: ${map_to_object(resource.Cloud_vSphere_Machine_1[*].address, "ip", "addr")} Idem_AVILB_APPLICATIONS_VIRTUAL_SERVICE_1: type: Idem.AVILB.APPLICATIONS.VIRTUAL_SERVICE properties: name: test-vs-${resource.Allocations_CustomNaming_1.selectedNames[0]} account: aviAcct cloud_type: CLOUD_NONE type: VS_TYPE_NORMAL traffic_enabled: true services: - enable_ssl: false port: 8000 pool_ref: ${resource.Idem_AVILB_APPLICATIONS_POOL_1.name} vsvip_ref: ${resource.Idem_AVILB_APPLICATIONS_VS_VIP_1.name} Cloud_vSphere_Machine_1: type: Cloud.vSphere.Machine properties: count: ${input.count} image: webserver cpuCount: 1 totalMemoryMB: 1024 networks: - network: ${resource.Cloud_vSphere_Network_1.id} assignment: static Cloud_vSphere_Network_1: type: Cloud.vSphere.Network metadata: layoutPosition: - 2 - 0 properties: networkType: existing Idem_AVILB_APPLICATIONS_VS_VIP_1: type: Idem.AVILB.APPLICATIONS.VS_VIP properties: name: test-vip-${resource.Allocations_CustomNaming_1.selectedNames[0]} account: aviAcct vip: - auto_allocate_floating_ip: false auto_allocate_ip: true auto_allocate_ip_type: V4_ONLY avi_allocated_fip: false avi_allocated_vip: false enabled: true ipam_network_subnet: network_ref: ${resource.Cloud_vSphere_Network_1.resourceName} subnet: ip_addr: addr: 10.202.20.0 type: V4 mask: 22
Avi Load Balancer IPAM in VS-VIP für NSX Cloud
Diese Avi Load Balancer-Beispielvorlage ist für Avi Load Balancer in NSX Cloud vorgesehen.
Zur Bereitstellung von Avi Load Balancer in NSX Cloud muss ein logischer Tier-1-Router (tier1_lr
) und/oder ein VRF-Kontext (vrf_context_ref
) im Avi Load Balancer-Pool, im virtuellen Dienst und in VS-VIP-Ressourcen definiert werden.
Die VS-VIP-Ressource definiert den Abschnitt ipam_network_subnet
mit network ref
und subnet
. Mithilfe dieser Definition teilt Avi Load Balancer eine IP-Adresse aus dem definierten Avi Load Balancer IPAM-Profil zu, wenn die VS-VIP im Avi Load Balancer-Controller erstellt wird.
formatVersion: 1 inputs: {} resources: Allocations_CustomNaming_1: type: Allocations.CustomNaming properties: resourceType: Generic numberOfNamesToGenerate: 5 templateName: avinsxBP Cloud_vSphere_Machine_1: type: Cloud.vSphere.Machine properties: count: 2 image: webserver cpuCount: 1 totalMemoryMB: 1024 networks: - network: ${resource.Cloud_vSphere_Network_1.id} assignment: static Idem_AVILB_APPLICATIONS_VS_VIP_1: type: Idem.AVILB.APPLICATIONS.VS_VIP properties: name: test-vip-${resource.Allocations_CustomNaming_1.selectedNames[0]} account: avinsx tier1_lr: DONT-DELETE-AVI-Admin-E2E vrf_context_ref: T1-DONT-DELETE-AVI-Admin-E2E vip: - auto_allocate_floating_ip: false auto_allocate_ip: true auto_allocate_ip_type: V4_ONLY avi_allocated_fip: false avi_allocated_vip: false enabled: true ipam_network_subnet: network_ref: ${resource.Cloud_vSphere_Network_1.resourceName} subnet: ip_addr: addr: 192.168.223.0 type: V4 mask: 24 Idem_AVILB_APPLICATIONS_VIRTUAL_SERVICE_1: type: Idem.AVILB.APPLICATIONS.VIRTUAL_SERVICE properties: name: test-vs-${resource.Allocations_CustomNaming_1.selectedNames[0]} account: avinsx cloud_type: CLOUD_NONE type: VS_TYPE_NORMAL traffic_enabled: true vrf_context_ref: T1-DONT-DELETE-AVI-Admin-E2E services: - enable_ssl: false port: 80 port_range_end: 8000 pool_ref: ${resource.Idem_AVILB_APPLICATIONS_POOL_1.name} vsvip_ref: ${resource.Idem_AVILB_APPLICATIONS_VS_VIP_1.name} Idem_AVILB_APPLICATIONS_POOL_1: type: Idem.AVILB.APPLICATIONS.POOL properties: name: test-pool-${resource.Allocations_CustomNaming_1.selectedNames[0]} account: avinsx lb_algorithm: LB_ALGORITHM_ROUND_ROBIN tier1_lr: DONT-DELETE-AVI-Admin-E2E vrf_ref: T1-DONT-DELETE-AVI-Admin-E2E health_monitor_refs: - System-Ping servers: ${map_to_object(resource.Cloud_vSphere_Machine_1[*].address, "ip", "addr")} Cloud_vSphere_Network_1: type: Cloud.vSphere.Network properties: networkType: existing
Infoblox IPAM in VS-VIP für NSX Cloud
Diese Avi Load Balancer-Beispielvorlage basiert auf der Avi Load Balancer-Integration mit Infoblox. Die Vorlage verwendet Infoblox IPAM, um der VS-VIP eine IP-Adresse für Avi Load Balancer in NSX Cloud zuzuteilen.
Das Attribut network_ref
im Abschnitt ipam_network_subnet
in der Vorlage ist auf den vollständigen Pfad des in Infoblox definierten Netzwerksegments festgelegt. Beachten Sie, dass der Wert network_ref
ein vollständiger Pfad sein muss, einschließlich des Präfixes /api/network/
. Hierin liegt der Unterschied zu ref
-Attributen.
formatVersion: 1 inputs: count: type: integer title: count default: 2 resources: Idem_AVILB_APPLICATIONS_VIRTUAL_SERVICE_1: type: Idem.AVILB.APPLICATIONS.VIRTUAL_SERVICE properties: name: infoblox-vs-${uuid()} account: aviinfoblox vrf_context_ref: nested-T1 services: - port: 8000 vsvip_ref: ${resource.Idem_AVILB_APPLICATIONS_VS_VIP_1.name} pool_ref: ${resource.Idem_AVILB_APPLICATIONS_POOL_1.name} Idem_AVILB_APPLICATIONS_VS_VIP_1: type: Idem.AVILB.APPLICATIONS.VS_VIP properties: name: infoblox-vip-${uuid()} account: aviinfoblox vrf_context_ref: nested-T1 tier1_lr: nested-T1 vip: - auto_allocate_ip: true ipam_network_subnet: network_ref: /api/network/infoblox--default--192.168.225.0-24 Idem_AVILB_APPLICATIONS_POOL_1: type: Idem.AVILB.APPLICATIONS.POOL properties: name: infoblox-pool-${uuid()} account: aviinfoblox tier1_lr: nested-T1 default_server_port: 8000 health_monitor_refs: - System-HTTP servers: ${map_to_object(resource.Cloud_vSphere_Machine_1[*].address, "ip", "addr")} Cloud_vSphere_Machine_1: type: Cloud.vSphere.Machine properties: count: ${input.count} image: webserver cpuCount: 2 totalMemoryMB: 4096 networks: - network: ${resource.Cloud_NSX_Network_1.id} assignment: static Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: existing
Vorhandene NSX-Sicherheitsgruppe für Poolmitglieder
Diese Avi Load Balancer-Beispielvorlage verwendet eine vorhandene NSX-Sicherheitsgruppe zum Zuweisen von Poolmitgliedern.
Das Attribut nsx_securitygroup
wird definiert und auf den Namen der vorhandenen NSX-Sicherheitsgruppe in der Idem.AVILB.APPLICATIONS.POOL
-Ressource festgelegt.
formatVersion: 1 inputs: count: type: integer title: vm-count default: 2 resources: Idem_AVILB_APPLICATIONS_VS_VIP_1: type: Idem.AVILB.APPLICATIONS.VS_VIP properties: name: vip-sg-${uuid()} account: ${resource.Allocations_CloudZone_1.selectedCloudAccount.name} tier1_lr: DONT-DELETE-AVI-Admin-E2E vrf_context_ref: T1-DONT-DELETE-AVI-Admin-E2E vip: - auto_allocate_floating_ip: false auto_allocate_ip: true enabled: true auto_allocate_ip_type: V4_ONLY ipam_network_subnet: network_ref: SEG-DONT-DELETE-AVI-Admin-E2E-Two-Arm-VSVIP subnet: ip_addr: addr: 192.168.223.0 type: V4 mask: 24 Allocations_CloudZone_1: type: Allocations.CloudZone properties: accountType: avilb constraints: - tag: avi-nsx Idem_AVILB_APPLICATIONS_VIRTUAL_SERVICE_1: type: Idem.AVILB.APPLICATIONS.VIRTUAL_SERVICE properties: name: vs-sg-${uuid()} account: ${resource.Allocations_CloudZone_1.selectedCloudAccount.name} vrf_context_ref: T1-DONT-DELETE-AVI-Admin-E2E traffic_enabled: true services: - port: 8000 vsvip_ref: ${resource.Idem_AVILB_APPLICATIONS_VS_VIP_1.name} pool_ref: ${resource.Idem_AVILB_APPLICATIONS_POOL_1.name} Idem_AVILB_APPLICATIONS_POOL_1: type: Idem.AVILB.APPLICATIONS.POOL properties: name: pool-sg-${uuid()} account: ${resource.Allocations_CloudZone_1.selectedCloudAccount.name} tier1_lr: DONT-DELETE-AVI-Admin-E2E vrf_ref: T1-DONT-DELETE-AVI-Admin-E2E lb_algorithm: LB_ALGORITHM_ROUND_ROBIN health_monitor_refs: - System-Ping nsx_securitygroup: - avinsxgroup
Zwei verschiedene Maschinencluster in einem einzelnen Pool
servers
im Idem-Pool unterscheidet sich von den regulären Bindungseigenschaften. Sie verbindet die Adressen der beiden Servercluster beim Aufruf der Funktion „map_to_object“ auf folgende Weise:
${map_to_object(resource.Cloud_vSphere_Machine_1[*].address + resource.Cloud_vSphere_Machine_2[*].address, "ip", "addr")}
Andere Komponenten wie der virtuelle Dienst, VS-VIP, Integritätsüberwachungen und das Hilfsprogramm für die Zuteilung von Cloud-Zonen werden wie gewohnt verwendet.
formatVersion: 1 inputs: {} resources: Idem_AVILB_PROFILES_HEALTH_MONITOR_1: type: Idem.AVILB.PROFILES.HEALTH_MONITOR properties: name: monitor-${resource.Allocations_CustomNaming_1.selectedNames[0]} type: HEALTH_MONITOR_PING account: ${resource.Allocations_CloudZone_1.selectedCloudAccount.name} is_federated: false monitor_port: 8000 send_interval: 8 receive_timeout: 4 successful_checks: 4 failed_checks: 4 Allocations_CloudZone_1: type: Allocations.CloudZone properties: accountType: avilb constraints: - tag: avi-vcenter Idem_AVILB_APPLICATIONS_POOL_1: type: Idem.AVILB.APPLICATIONS.POOL properties: name: pool-${resource.Allocations_CustomNaming_1.selectedNames[0]} account: ${resource.Allocations_CloudZone_1.selectedCloudAccount.name} lb_algorithm: LB_ALGORITHM_ROUND_ROBIN default_server_port: 8000 servers: ${map_to_object(resource.Cloud_vSphere_Machine_1[*].address + resource.Cloud_vSphere_Machine_2[*].address, "ip", "addr")} health_monitor_refs: - ${resource.Idem_AVILB_PROFILES_HEALTH_MONITOR_1.name} Idem_AVILB_APPLICATIONS_VS_VIP_1: type: Idem.AVILB.APPLICATIONS.VS_VIP properties: name: vip-${resource.Allocations_CustomNaming_1.selectedNames[0]} account: ${resource.Allocations_CloudZone_1.selectedCloudAccount.name} vip: - auto_allocate_ip: true auto_allocate_ip_type: V4_ONLY enabled: true placement_networks: - network_ref: ${resource.Cloud_vSphere_Network_1.resourceName} subnet: ip_addr: addr: 10.202.20.0 type: V4 mask: 22 Allocations_CustomNaming_1: type: Allocations.CustomNaming properties: resourceType: Generic numberOfNamesToGenerate: 1 templateName: avi-vcenter-bp Idem_AVILB_APPLICATIONS_VIRTUAL_SERVICE_1: type: Idem.AVILB.APPLICATIONS.VIRTUAL_SERVICE properties: name: vs-${resource.Allocations_CustomNaming_1.selectedNames[0]} account: ${resource.Allocations_CloudZone_1.selectedCloudAccount.name} traffic_enabled: true services: - port: 8000 pool_ref: ${resource.Idem_AVILB_APPLICATIONS_POOL_1.name} vsvip_ref: ${resource.Idem_AVILB_APPLICATIONS_VS_VIP_1.name} Cloud_vSphere_Machine_1: type: Cloud.vSphere.Machine properties: count: 2 image: photon cpuCount: 1 totalMemoryMB: 1024 networks: - network: ${resource.Cloud_vSphere_Network_1.id} assignment: static Cloud_vSphere_Machine_2: type: Cloud.vSphere.Machine properties: count: 3 image: photon cpuCount: 1 totalMemoryMB: 1024 networks: - network: ${resource.Cloud_vSphere_Network_1.id} assignment: static Cloud_vSphere_Network_1: type: Cloud.vSphere.Network properties: networkType: existing