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)