Sie können Ressourcen und Einstellungen für Netzwerk, Sicherheit und Lastausgleichsdienste in Cloud-Vorlagendesigns und Bereitstellungen verwenden.
Eine Zusammenfassung der Designcodeoptionen für Cloud-Vorlagen finden Sie unter vRealize Automation-Ressourcentypschema.
Diese Beispiele veranschaulichen Netzwerk-, Sicherheits- und Lastausgleichsdienstressourcen in einfachen Cloud-Vorlagendesigns.
Netzwerke
Ressourcenszenario | Beispiel für den Designcode einer Cloud-Vorlage |
---|---|
vSphere-Maschine mit mehreren Netzwerkkarten, die mit vSphere- und NSX-Netzwerken mit DHCP-IP-Zuweisung verbunden sind | 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 |
Privates NSX-Netzwerk, das die Eigenschaft vlanIds zur Angabe eines Arrays mit 3 VLANs – 123, 456 und 7 verwendet |
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 |
Hinzufügen eines privaten Netzwerks mit einer statischen IP-Adresse für die Bereitstellung einer Azure-VM | 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 |
Sie können eine statische IP-Zuweisung mit vRealize Automation IPAM verwenden (intern, wie im Lieferumfang von vRealize Automation enthalten, oder extern auf Basis des vRealize Automation IPAM-SDK, wie z. B. für ein im VMware Marketplace verfügbares Infoblox-Plug-In). Andere Verwendungen von |
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 |
Fügen Sie NAT- und DNAT-Portweiterleitungsregeln in einer Cloud.NSX.NAT -Ressource für eine vorhandene Bereitstellung hinzu oder bearbeiten Sie sie. |
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 |
Public Cloud-Maschine zur Verwendung einer internen IP-Adresse anstelle einer öffentlichen IP-Adresse. In diesem Beispiel wird eine bestimmte Netzwerk-ID verwendet. Hinweis: Die 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 |
Geroutetes Netzwerk, das den NSX-Netzwerkressourcentyp verwendet. |
Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: routed |
Fügen Sie der Netzwerkkartenressource einer Maschine in der Cloud-Vorlage ein Tag hinzu. | 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 |
Taggen Sie logische NSX-T-Switches für ein ausgehendes Netzwerk. Tagging wird für NSX-T und VMware Cloud on AWS unterstützt. Weitere Informationen zu diesem Szenario finden Sie im Community-Blogbeitrag Erstellen von Tags in NSX mit Cloud Assembly. |
Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: outbound tags: - key: app value: opencart |
Sicherheitsgruppen
Ressourcenszenario | Beispiel für den Designcode einer Cloud-Vorlage |
---|---|
Vorhandene Sicherheitsgruppe mit einem Einschränkungs-Tag, das auf eine Maschinen-Netzwerkkarte (NIC) angewendet wurde. Um eine vorhandene Sicherheitsgruppe zu verwenden, geben Sie Vorhanden für die Eigenschaft securityGroupType ein. Sie können einer Cloud.SecurityGroup-Ressource Tags zuweisen, um vorhandene Sicherheitsgruppen mithilfe von Tag-Einschränkungen zuzuteilen. Sicherheitsgruppen, die keine Tags enthalten, können im Cloud-Vorlagendesign nicht verwendet werden. Einschränkungs-Tags müssen für |
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 |
Bedarfsgesteuerte Sicherheitsgruppe mit zwei Firewallregeln, die die Zugriffsoptionen |
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 |
Komplexe Cloud-Vorlage mit 2 Sicherheitsgruppen, einschließlich:
Dieses Beispiel veranschaulicht verschiedene Kombinationen aus Protokollen und Ports, Dienste, IP-CIDR als Quelle und Ziel, IP-Bereich als Quelle oder Ziel sowie die Optionen für „Beliebig“, „IPv6“ und (::/0). Für Maschinen-Netzwerkkarten können Sie das verbundene Netzwerk und die Sicherheitsgruppe(n) angeben. Sie können auch den Netzwerkkartenindex oder eine IP-Adresse angeben. |
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 |
Lastausgleichsdienste
Ressourcenszenario | Beispiel für den Designcode einer Cloud-Vorlage |
---|---|
Geben Sie die Protokollierungsebene, den Algorithmus und die Größe des Lastausgleichsdiensts an. |
NSX-Beispiellastausgleichsdienst, der die Verwendung der Protokollierungsebene, des Algorithmus und der Größe anzeigt: 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 |
Verknüpfen Sie einen Lastausgleichsdienst mit einer benannten Maschine oder Maschinen-Netzwerkkarte. Sie können entweder Im ersten Beispiel wird in der Bereitstellung die Einstellung Im zweiten Beispiel wird in der Bereitstellung die Einstellung Das dritte Beispiel zeigt beide Einstellungen, die in derselben |
Sie können die Eigenschaft
instances zum Definieren einer Maschinen-ID oder einer Maschinennetzwerk-ID verwenden:
|
Fügen Sie einem NSX-Lastausgleichsdienst Einstellungen der Integritätsprüfung hinzu. Zu den zusätzlichen Optionen gehören httpMethod , requestBody und 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} |
Bedarfsgesteuertes Netzwerk mit einem 1-armigen Lastausgleichsdienst. |
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 |
Vorhandenes Netzwerk mit einem Lastausgleichsdienst. |
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 |
Weitere Informationen
- vRealize Automation Cloud Assembly-Lastausgleichsdienst mit NSX-T Deep Dive
- Netzwerkautomatisierung mit Cloud Assembly und NSX – Teil 1 (beinhaltet die Verwendung von NSX-T- und vCenter-Cloud-Konten und Netzwerk-CIDR)
- Netzwerkautomatisierung mit Cloud Assembly und NSX – Teil 2 (beinhaltet die Verwendung vorhandener und ausgehender Netzwerktypen)
- Netzwerkautomatisierung mit Cloud Assembly und NSX – Teil 3 (beinhaltet die Verwendung vorhandener und bedarfsgesteuerter Sicherheitsgruppen)
- Netzwerkautomatisierung mit Cloud Assembly und NSX – Teil 4 (beinhaltet die Verwendung vorhandener und bedarfsgesteuerter Lastausgleichsdienste)