Vous pouvez utiliser les ressources et les paramètres de mise en réseau, de sécurité et d'équilibrage de charge dans les conceptions et les déploiements de modèles de cloud.
Pour obtenir un résumé des options de code de conception de modèle de cloud, consultez Schéma de type de ressource de vRealize Automation.
- En savoir plus sur les ressources réseau dans les modèles de cloud vRealize Automation
- En savoir plus sur les ressources de groupe de sécurité et de balise dans les modèles de cloud vRealize Automation
- Pour en savoir plus sur les ressources d'équilibrage de charge, reportez-vous aux modèles de cloud vRealize Automation
Ces exemples illustrent les ressources de réseau, de sécurité et d’équilibrage de charge dans les conceptions de modèle de cloud de base.
Réseaux
Scénario de ressources | Exemple de code de conception de modèle de cloud |
---|---|
Machine vSphere sur laquelle plusieurs cartes réseau sont connectées à des réseaux vSphere et NSX avec attribution d'adresses IP 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 |
Réseau privé NSX utilisant la propriété vlanIds pour spécifier une baie de 3 VLAN : 123, 456 et 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 |
Ajoutez un réseau privé avec une adresse IP statique pour un déploiement de machine virtuelle 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 |
Vous pouvez utiliser une attribution d'adresse IP statique avec vRealize Automation IPAM (interne comme fournie avec vRealize Automation ou externe basée sur le SDK IPAM vRealize Automation comme pour l'un des plug-ins Infloblox disponibles dans VMware Marketplace). Les autres utilisations 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 |
Ajoutez ou modifiez des règles de transfert de port NAT et DNAT dans une ressource Cloud.NSX.NAT pour un déploiement existant. |
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 |
Une machine de cloud public utilise une adresse IP interne au lieu d'une adresse IP publique Cet exemple utilise un ID réseau spécifique. Remarque : l'option |
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 |
Réseau routé à l'aide du type de ressource réseau NSX. |
Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: routed |
Ajoutez une balise à une ressource de carte réseau de machine dans le modèle de cloud. | 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 |
Balisez les commutateurs logiques NSX-T pour un réseau sortant. Le balisage est pris en charge pour NSX-T et VMware Cloud on AWS. Pour plus d'informations sur ce scénario, reportez-vous à l'article de blog de la communauté Creating Tags in NSX with Cloud Assembly (Création de balises dans NSX avec Cloud Assembly). |
Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: outbound tags: - key: app value: opencart |
Groupes de sécurité
Scénario de ressources | Exemple de code de conception de modèle de cloud |
---|---|
Groupe de sécurité existant avec une balise de contrainte appliquée à la carte réseau d'une machine. Pour utiliser un groupe de sécurité existant, entrez existant pour la propriété securityGroupType . Vous pouvez attribuer des balises à une ressource de Cloud.SecurityGroup pour allouer des groupes de sécurité existants en utilisant des contraintes de balise. Les groupes de sécurité qui ne contiennent aucune balise ne peuvent pas être utilisés dans la conception du modèle de cloud. Les balises de contrainte doivent être définies pour des ressources de groupes de sécurité |
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 |
Groupe de sécurité à la demande incluant deux règles de pare-feu illustrant les options d'accès |
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 |
Modèle de cloud complexe incluant 2 groupes de sécurité, notamment :
Cet exemple illustre différentes combinaisons de protocole et de ports, de services, de CIDR IP en tant que source et destination, de plages d'adresses IP en tant que source ou destination, et les options pour tous, IPv6 et (::/0). Pour les cartes réseau de machine, vous pouvez spécifier le réseau connecté, ainsi que le ou les groupes de sécurité. Vous pouvez également spécifier l'index de la carte réseau ou une adresse 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 |
Équilibrages de charge
Scénario de ressources | Exemple de code de conception de modèle de cloud |
---|---|
Spécifiez un niveau de journalisation, un algorithme et une taille d'équilibrage de charge. |
Exemple d'équilibrage de charge NSX illustrant l'utilisation du niveau, de l'algorithme et de la taille de journalisation : 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 |
Associez un équilibrage de charge à une machine nommée ou à une carte réseau de machine nommée. Vous pouvez spécifier Dans le premier exemple, le déploiement utilise le paramètre Dans le second exemple, le déploiement utilise le paramètre Le troisième exemple montre les deux paramètres utilisés dans la même option |
Vous pouvez utiliser la propriété
instances pour définir un ID de machine ou un ID réseau de machine :
|
Ajoutez des paramètres de contrôle de santé à un équilibrage de charge NSX. Les options supplémentaires incluent httpMethod , requestBody et 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} |
Réseau à la demande avec un équilibrage de charge à un bras. |
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 |
Réseau existant avec un équilibrage de charge. |
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 |
En savoir plus
- Approfondissement technique sur l'équilibrage de charge de vRealize Automation Cloud Assembly avec NSX-T
- Automatisation réseau avec Cloud Assembly et NSX – Partie 1 (inclut l'utilisation de comptes de cloud NSX-T et vCenter et du CIDR réseau)
- Automatisation réseau avec Cloud Assembly et NSX – Partie 2 (inclut l'utilisation de types de réseaux existants et sortants)
- Automatisation réseau avec Cloud Assembly et NSX – Partie 3 (inclut l'utilisation de groupes de sécurité existants et à la demande)
- Automatisation réseau avec Cloud Assembly et NSX – Partie 4 (inclut l'utilisation d'équilibrages de charge existants et à la demande)