Puede usar los recursos y la configuración de redes, seguridad y equilibrador de carga en implementaciones y diseños de plantillas de nube.
Para obtener un resumen de todas las opciones de código de diseño de plantilla de nube, consulte Esquema de tipo de recursos de vRealize Automation.
- Más información sobre los recursos de red en plantillas de nube de vRealize Automation
- Más información sobre los grupos de seguridad y recursos de etiqueta en plantillas de nube de vRealize Automation
- Más información sobre los recursos de equilibrador de carga en plantillas de nube de vRealize Automation
Estos ejemplos ilustran recursos de red, seguridad y equilibrador de carga dentro de los diseños de plantilla de nube básicos.
Redes
Escenario de recursos | Ejemplo de código de diseño de plantilla de nube |
---|---|
Máquina de vSphere con varias NIC conectadas a redes de vSphere y NSX con asignación de direcciones IP de 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 |
Red privada de NSX que usa la propiedad vlanIds para especificar una matriz de 3 VLAN: 123, 456 y 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 |
Agregar una red privada con una dirección IP estática para una implementación de máquina virtual de 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 |
Puede utilizar una asignación de direcciones IP estáticas con vRealize IPAM (interna como se proporciona con vRealize Automation o externa basada en el SDK de IPAM de vRA, como para uno de los complementos de Infoblox disponibles en VMware Marketplace). No se admiten otros 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 |
Agregue o edite reglas de enrutamiento de puerto NAT y DNAT en un recurso de Cloud.NSX.NAT para una implementación 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 nube pública que usará una IP interna en lugar de una IP pública. En este ejemplo, se utiliza un identificador de red específico. Nota: La opción |
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 |
Red con enrutamiento para NSX-V o NSX-T con el tipo de recurso de red NSX. |
Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: routed |
Agregue una etiqueta a un recurso de NIC de máquina en la plantilla de nube. | 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 |
Etiquete los conmutadores lógicos de NSX-T para una red saliente. El etiquetado es compatible con NSX-T y VMware Cloud on AWS. Para obtener más información sobre este escenario, consulte la publicación de blog de la comunidad Creación de etiquetas en NSX con Cloud Assembly. |
Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: outbound tags: - key: app value: opencart |
Grupos de seguridad
Escenario de recursos | Ejemplo de código de diseño de plantilla de nube |
---|---|
Grupo de seguridad existente con una etiqueta de restricción aplicada a una NIC de máquina. Para usar un grupo de seguridad existente, introduzca existente para la propiedad securityGroupType . Puede asignar etiquetas a un recurso de Cloud.SecurityGroup para asignar grupos de seguridad existentes mediante restricciones de etiqueta. Los grupos de seguridad que no contienen etiquetas no se pueden utilizar en el diseño de plantilla de nube. Deben establecerse etiquetas de restricción para los recursos de grupo de seguridad |
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 seguridad a petición con dos reglas de firewall que ilustran las opciones de acceso |
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 |
Plantilla de nube compleja con 2 grupos de seguridad, incluidos:
En este ejemplo, se muestran diferentes combinaciones de protocolos y puertos, servicios, CIDR de IP como origen y destino, rango de IP como origen o destino, y las opciones para any, IPv6 y (::/0). Para las NIC de máquina, puede especificar la red conectada y los grupos de seguridad. También puede especificar el índice de NIC o una dirección 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 |
Equilibradores de carga
Escenario de recursos | Ejemplo de código de diseño de plantilla de nube |
---|---|
Especifique un nivel de registro, un algoritmo y un tamaño de equilibrador de carga. |
Ejemplo de equilibrador de carga de NSX que muestra cómo se usan el nivel de registro, el algoritmo y el tamaño: 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 |
Asocie un equilibrador de carga a una máquina con nombre o a una NIC de máquina con nombre. Puede especificar En el primer ejemplo, la implementación utiliza el ajuste En el segundo ejemplo, la implementación utiliza el ajuste En el tercer ejemplo, se muestran ambos ajustes utilizados en la misma opción de |
Puede usar la propiedad
instances para definir un identificador de máquina o un identificador de red de máquinas:
|
Agregue una configuración de comprobación de estado a un equilibrador de carga de NSX. Entre las opciones adicionales se incluyen httpMethod , requestBody y 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} |
Red a petición con un equilibrador de carga de 1 brazo. |
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 |
Red existente con un equilibrador 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 |
Más información
- Información detallada del equilibrador de carga de vRealize Automation Cloud Assembly con NSX-T
- Automatización de red con Cloud Assembly y NSX: Parte 1 (incluye el uso de cuentas de nube de NSX-T y vCenter y CIDR de red)
- Automatización de redes con Cloud Assembly y NSX: Parte 2 (incluye el uso de tipos de red existentes y salientes)
- Automatización de redes con Cloud Assembly y NSX: Parte 3 (incluye el uso de grupos de seguridad existentes y a petición)
- Automatización de redes con Cloud Assembly y NSX: Parte 4 (incluye el uso de equilibradores de carga existentes y a petición)