Você pode usar recursos e configurações de rede, segurança e balanceador de carga em designs e implantações de modelos de nuvem.
Para obter um resumo das opções de código de design de modelo de nuvem, consulte Esquema de tipos de recursos do vRealize Automation.
Esses exemplos ilustram recursos de rede, segurança e balanceador de carga em designs básicos de modelos de nuvem.
Redes
Cenário de recursos | Exemplo de código de design de modelo de nuvem |
---|---|
Máquina do vSphere com várias NICs conectadas a redes do vSphere e do NSX com atribuição de IPs DHCP | resources: demo-machine: type: Cloud.vSphere.Machine properties: image: ubuntu flavor: small networks: - network: ${resource["demo-vSphere-Network"].id} deviceIndex: 0 - network: ${resource["demo-NSX-Network"].id} deviceIndex: 1 demo-vSphere-Network: type: Cloud.vSphere.Network properties: networkType: existing demo-NSX-Network: type: Cloud.NSX.Network properties: networkType: outbound |
Rede privada do NSX usando a propriedade vlanIds para especificar uma matriz de 3 VLANs - 123, 456 e 7 |
formatVersion: 1 inputs: {} resources: Cloud_Machine_1: type: Cloud.Machine properties: image: test flavor: test networks: - network: '${resource.Cloud_NSX_Network_1.id}' Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: private vlanIds: - 123 - 456 - 7 |
Adicionar uma rede privada com um endereço IP estático para uma implantação de VM do Azure | formatVersion: 1 inputs: {} resources: Cloud_Azure_Machine_1: type: Cloud.Machine properties: image: photon flavor: Standard_B1ls networks: - network: '${resource.Cloud_Network_1.id}' assignment: static address: 10.0.0.45 assignPublicIpAddress: false Cloud_Network_1: type: Cloud.Network properties: networkType: existing |
Você pode usar uma atribuição de IP estático com o IPAM do vRealize Automation (interno, conforme fornecido com o vRealize Automation, ou externo, com base no SDK IPAM do vRealize Automation, como para um dos plug-ins Infloblox disponíveis no VMware Marketplace). Outros usos de |
resources: demo_vm: type: Cloud.vSphere.Machine properties: image: 'photon' cpuCount: 1 totalMemoryMB: 1024 networks: - network: ${resource.demo_nw.id} assignment: static demo_nw: type: Cloud.vSphere.Network properties: networkType: existing |
Adicione ou edite regras de direcionamento de porta NAT e DNAT em um recurso Cloud.NSX.NAT para uma implantação existente. |
resources: gw: type: Cloud.NSX.Gateway properties: networks: - ${resource.akout.id} nat: type: Cloud.NSX.Nat properties: networks: - ${resource.akout.id} natRules: - translatedInstance: ${resource.centos.networks[0].id} index: 0 protocol: TCP kind: NAT44 type: DNAT sourceIPs: any sourcePorts: 80 translatedPorts: 8080 destinationPorts: 8080 description: edit - translatedInstance: ${resource.centos.networks[0].id} index: 1 protocol: TCP kind: NAT44 type: DNAT sourceIPs: any sourcePorts: 90 translatedPorts: 9090 destinationPorts: 9090 description: add gateway: ${resource.gw.id} centos: type: Cloud.vSphere.Machine properties: image: WebTinyCentOS65x86 flavor: small customizationSpec: Linux networks: - network: ${resource.akout.id} assignment: static akout: type: Cloud.NSX.Network properties: networkType: outbound constraints: - tag: nsxt-nat-1-M2 |
Máquina de nuvem pública para usar um IP interno em vez de um IP público. Este exemplo usa uma ID de rede específica. Observação: a opção |
resources: wf_proxy: type: Cloud.Machine properties: image: ubuntu 16.04 flavor: small constraints: - tag: 'platform:vsphere' networks: - network: '${resource.wf_net.id}' assignPublicIpAddress: false |
Rede roteada usando o tipo de recurso de rede do NSX. |
Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: routed |
Adicione uma tag a um recurso de NIC de máquina no modelo de nuvem. | formatVersion: 1 inputs: {} resources: Cloud_Machine_1: type: Cloud.vSphere.Machine properties: flavor: small image: ubuntu networks: - name: '${resource.Cloud_Network_1.name}' deviceIndex: 0 tags: - key: 'nic0' value: null - key: internal value: true - name: '${resource.Cloud_Network_2.name}' deviceIndex: 1 tags: - key: 'nic1' value: null - key: internal value: false |
Marque comutadores lógicos do NSX-T para uma rede de saída. A marcação tem suporte para o NSX-T e o VMware Cloud on AWS. Para obter mais informações sobre esse cenário, consulte a postagem do blog da comunidade Criando tags no NSX com o Cloud Assembly. |
Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: outbound tags: - key: app value: opencart |
Grupos de segurança
Cenário de recursos | Exemplo de código de design de modelo de nuvem |
---|---|
Grupo de segurança existente com uma tag de restrição aplicada a uma NIC de máquina. Para usar um grupo de segurança existente, insira existente para a propriedade securityGroupType . É possível atribuir tags a um recurso Cloud.SecurityGroup para alocar grupos de segurança existentes usando restrições de tag. Grupos de segurança que não contiverem tags não poderão ser usados no design de modelo de nuvem. Tags de restrição devem ser definidas para recursos de grupo de segurança |
formatVersion: 1 inputs: {} resources: allowSsh_sg: type: Cloud.SecurityGroup properties: securityGroupType: existing constraints: - tag: allowSsh compute: type: Cloud.Machine properties: image: centos flavor: small networks: - network: '${resource.prod-net.id}' securityGroups: - '${resource.allowSsh_sg.id}' prod-net: type: Cloud.Network properties: networkType: existing |
Grupo de segurança sob demanda com duas regras de firewall ilustrando as opções de acesso a |
resources: Cloud_SecurityGroup_1: type: Cloud.SecurityGroup properties: securityGroupType: new rules: - ports: 5000 source: 'fc00:10:000:000:000:56ff:fe89:48b4' access: Allow direction: inbound name: allow_5000 protocol: TCP - ports: 7000 source: 'fc00:10:000:000:000:56ff:fe89:48b4' access: Deny direction: inbound name: deny_7000 protocol: TCP Cloud_vSphere_Machine_1: type: Cloud.vSphere.Machine properties: image: photon cpuCount: 1 totalMemoryMB: 256 networks: - network: '${resource.Cloud_Network_1.id}' assignIPv6Address: true assignment: static securityGroups: - '${resource.Cloud_SecurityGroup_1.id}' Cloud_Network_1: type: Cloud.Network properties: networkType: existing |
Modelo de nuvem complexo com 2 grupos de segurança, incluindo:
Esta amostra ilustra diferentes combinações de protocolos e portas, serviços, CIDR IP como origem e destino, intervalo de IPs como origem ou destino e as opções para qualquer, IPv6 e (::/0). Para NICs de máquina, é possível especificar a rede conectada e o(s) grupo(s) de segurança. Você também pode especificar o índice de NIC ou um endereço IP. |
formatVersion: 1 inputs: {} resources: DEMO_ESG : existing security group - security group 1) type: Cloud.SecurityGroup properties: constraints: - tag: BlockAll securityGroupType: existing (designation of existing for security group 1) DEMO_ODSG: (on-demand security group - security group 2)) type: Cloud.SecurityGroup properties: rules: (multiple firewall rules in this section) - name: IN-ANY (rule 1) source: any service: any direction: inbound access: Deny - name: IN-SSH (rule 2) source: any service: SSH direction: inbound access: Allow - name: IN-SSH-IP (rule 3) source: 33.33.33.1-33.33.33.250 protocol: TCP ports: 223 direction: inbound access: Allow - name: IPv-6-ANY-SOURCE (rule 4) source: '::/0' protocol: TCP ports: 223 direction: inbound access: Allow - name: IN-SSH-IP (rule 5) source: 44.44.44.1/24 protocol: UDP ports: 22-25 direction: inbound access: Allow - name: IN-EXISTING-SG (rule 6) source: '${resource["DEMO_ESG"].id}' protocol: ICMPv6 direction: inbound access: Allow - name: OUT-ANY (rule 7) destination: any service: any direction: outbound access: Deny - name: OUT-TCP-IPv6 (rule 8) destination: '2001:0db8:85a3::8a2e:0370:7334/64' protocol: TCP ports: 22 direction: outbound access: Allow - name: IPv6-ANY-DESTINATION (rule 9) destination: '::/0' protocol: UDP ports: 23 direction: outbound access: Allow - name: OUT-UDP-SERVICE (rule 10) destination: any service: NTP direction: outbound access: Allow securityGroupType: new (designation of on-demand for security group 2) DEMO_VC_MACHINE: (machine resource) type: Cloud.vSphere.Machine properties: image: PHOTON cpuCount: 1 totalMemoryMB: 1024 networks: (Machine network NICs) - network: '${resource.DEMO_NW.id}' securityGroups: - '${resource.DEMO_ODSG.id}' - '${resource.DEMO_ESG.id}' DEMO_NETWORK: (network resource) type: Cloud.vSphere.Network properties: networkType: existing constraints: - tag: nsx62 |
Balanceadores de carga
Cenário de recursos | Exemplo de código de design de modelo de nuvem |
---|---|
Especifique um nível de log, algoritmo e tamanho de balanceador de carga. |
Amostra do balanceador de carga NSX mostrando o uso do nível de log, algoritmo e tamanho: resources: Cloud_LoadBalancer_1: type: Cloud.NSX.LoadBalancer properties: name: myapp-lb network: '${appnet-public.name}' instances: '${wordpress.id}' routes: - protocol: HTTP port: '80' loggingLevel: CRITICAL algorithm: LEAST_CONNECTION type: MEDIUM |
Associe um balanceador de carga a uma máquina nomeada ou a uma NIC de máquina nomeada. Você pode especificar No primeiro exemplo, a implantação usa a configuração No segundo exemplo, a implantação usa a configuração de O terceiro exemplo mostra ambas as configurações usadas na mesma opção de |
Você pode usar a propriedade
instances para definir uma ID de máquina ou uma ID de rede de máquinas:
|
Adicione as configurações de verificação de integridade a um balanceador de carga NSX. As opções adicionais incluem httpMethod , requestBody e responseBody . |
myapp-lb: type: Cloud.NSX.LoadBalancer properties: name: myapp-lb network: '${appnet-public.name}' instances: '${wordpress.id}' routes: - protocol: HTTP port: '80' algorithm: ROUND_ROBIN instanceProtocol: HTTP instancePort: '80' healthCheckConfiguration: protocol: HTTP port: '80' urlPath: /mywordpresssite/wp-admin/install.php intervalSeconds: 60 timeoutSeconds: 10 unhealthyThreshold: 10 healthyThreshold: 2 connectionLimit: '50' connectionRateLimit: '50' maxConnections: '500' minConnections: '' internetFacing: true{code} |
Rede sob demanda com um balanceador de carga de 1 braço. |
inputs: {} resources: mp-existing: type: Cloud.Network properties: name: mp-existing networkType: existing mp-wordpress: type: Cloud.vSphere.Machine properties: name: wordpress count: 2 flavor: small image: tiny customizationSpec: Linux networks: - network: '${resource["mp-private"].id}' mp-private: type: Cloud.NSX.Network properties: name: mp-private networkType: private constraints: - tag: nsxt mp-wordpress-lb: type: Cloud.LoadBalancer properties: name: wordpress-lb internetFacing: false network: '${resource.mp-existing.id}' instances: '${resource["mp-wordpress"].id}' routes: - protocol: HTTP port: '80' instanceProtocol: HTTP instancePort: '80' healthCheckConfiguration: protocol: HTTP port: '80' urlPath: /index.pl intervalSeconds: 60 timeoutSeconds: 30 unhealthyThreshold: 5 healthyThreshold: 2 |
Rede existente com um balanceador de carga. |
formatVersion: 1 inputs: count: type: integer default: 1 resources: ubuntu-vm: type: Cloud.Machine properties: name: ubuntu flavor: small image: tiny count: '${input.count}' networks: - network: '${resource.Cloud_NSX_Network_1.id}' Provider_LoadBalancer_1: type: Cloud.LoadBalancer properties: name: OC-LB routes: - protocol: HTTP port: '80' instanceProtocol: HTTP instancePort: '80' healthCheckConfiguration: protocol: HTTP port: '80' urlPath: /index.html intervalSeconds: 60 timeoutSeconds: 5 unhealthyThreshold: 5 healthyThreshold: 2 network: '${resource.Cloud_NSX_Network_1.id}' internetFacing: false instances: '${resource["ubuntu-vm"].id}' Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: existing constraints: - tag: nsxt24prod |
Saiba mais
- Um mergulho profundo no Balanceador de carga do vRealize Automation Cloud Assembly com o NSX-T
- Automação de rede com o Cloud Assembly e o NSX – Parte 1 (inclui o uso de contas de nuvem do NSX-T e do vCenter e do CIDR de rede)
- Automação de rede com o Cloud Assembly e o NSX – Parte 2 (inclui o uso de tipos de rede existentes e de saída)
- Automação de rede com o Cloud Assembly e o NSX – Parte 3 (inclui o uso de grupos de segurança existentes e sob demanda)
- Automação de rede com o Cloud Assembly e o NSX – Parte 4 (inclui o uso de balanceadores de carga existentes e sob demanda)