A integração do VMware Aria Automation com o Avi Load Balancer oferece suporte para a alocação de endereços IP virtuais de serviços virtuais por meio do Avi Load Balancer IPAM. Você também pode especificar o IP dentro do modelo ou como uma entrada.
Ao projetar seu modelo, lembre-se de que, mesmo que algumas propriedades não estejam marcadas como obrigatórias, elas ainda podem ser necessárias para que esse modelo funcione, dependendo do caso de uso. Os seguintes modelos de amostra fornecem orientação sobre diferentes cenários de IPAM, vSphere, e nuvem do NSX.
Em alguns dos exemplos de modelos que usam o atributo tier1_lr
, o nome tier1_lr
pode ser usado somente quando o nome do roteador lógico de nível 1 é igual ao ID. Caso contrário, você deverá usar o caminho completo do roteador lógico de nível 1, por exemplo, /infra/tier-1s/20f6a214-e8b3-4bb3-aaeb-6c06639ada23.
Antes de começar
- No Avi Load Balancer Controller, configure a sub-rede e o perfil do IPAM.
Consulte IPAM e DNS do NSX Advanced Load Balancer.
- Configure VMware Aria Automation.
- Crie sua conta de nuvem do Avi Load Balancer no Automation Assembler, crie um projeto e adicione a zona de nuvem.
Consulte Criar uma conta de nuvem do VMware Avi Load Balancer.
- Configure a rede para provisionamento.
Navegue até
, localize a rede a ser usada para provisionamento e configure os servidores IPv4/IPv6 CIDR e DNS. - Configure o mapeamento de imagens.
Navegue até
e siga as instruções na tela para criar um novo mapeamento de imagens.Consulte Saiba mais sobre mapeamentos de imagem no VMware Aria Automation.
- Configure o perfil de rede.
Navegue até
e siga as instruções na tela para criar um novo perfil de rede.Consulte Saiba mais sobre perfis de rede no VMware Aria Automation.
- Crie sua conta de nuvem do Avi Load Balancer no Automation Assembler, crie um projeto e adicione a zona de nuvem.
Endereço IP estático no VS VIP
Esse modelo de amostra do Avi Load Balancer inclui um serviço virtual, um VS VIP e um pool. Um cluster de máquinas virtuais do vSphere é atribuído ao pool. O VS VIP tem um endereço IP estático.
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 no VS VIP para o vCenter Cloud
Esse modelo de amostra do Avi Load Balancer é para o vCenter Cloud.
O recurso VS VIP define a seção ipam_network_subnet
com network ref
e subnet
. Essa definição faz com que o Avi Load Balancer aloque um endereço IP do perfil IPAM do Avi Load Balancer definido ao criar o VS VIP no Avi Load Balancer Controller.
O cluster definido de membros do pool usa uma atribuição de rede estática. No Automation Assembler, você configura uma rede, por exemplo, Domínio, CIDR IPv4/IPv6, um gateway padrão e servidores DNS. Em seguida, configura um perfil de rede com um intervalo de rede usando essa rede. Quando clusters são criados, os endereços IP do intervalo de rede são alocados a eles.
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 no VS VIP para o NSX Cloud
Esse modelo de amostra do Avi Load Balancer é para o Avi Load Balancer no NSX Cloud.
Para provisionar o Avi Load Balancer no NSX Cloud, deve ser definido um roteador lógico de nível 1 (tier1_lr
) e/ou um contexto do VRF (vrf_context_ref
) no pool do Avi Load Balancer, no serviço virtual e em recursos do VS VIP.
O recurso VS VIP define a seção ipam_network_subnet
com network ref
e subnet
. Essa definição faz com que o Avi Load Balancer aloque um endereço IP do perfil IPAM do Avi Load Balancer definido ao criar o VS VIP no Avi Load Balancer Controller.
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 no VS VIP para o NSX Cloud
Esse modelo de amostra do Avi Load Balancer é baseado na integração do Avi Load Balancer com o Infoblox. O modelo usa o Infoblox IPAM para alocar um endereço IP ao VS VIP para o Avi Load Balancer no NSX Cloud.
O atributo network_ref
da seção ipam_network_subnet
no modelo é definido como o caminho completo do segmento de rede definido no Infoblox. Observe que o valor network_ref
deve ser um caminho completo, incluindo o prefixo /api/network/
. Isso é diferente de outros atributos ref
.
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
Grupo de segurança existente do NSX para membros do pool
Esse modelo de amostra do Avi Load Balancer usa um grupo de segurança existente do NSX para atribuir membros do pool.
O atributo nsx_securitygroup
é definido como o nome do grupo de segurança existente do NSX no recurso Idem.AVILB.APPLICATIONS.POOL
.
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
Dois clusters de máquinas distintos em um único pool
servers
no pool Idem difere das propriedades de vinculação regulares. Ela conecta os endereços dos dois clusters de servidores ao chamar a função map_to_object, da seguinte maneira:
${map_to_object(resource.Cloud_vSphere_Machine_1[*].address + resource.Cloud_vSphere_Machine_2[*].address, "ip", "addr")}
Outros componentes, como o serviço virtual, o VS VIP, o monitor de integridade e o auxiliar de alocação de zonas de nuvem, são usados regularmente.
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