클라우드 템플릿 설계 및 배포에서 네트워킹, 보안 및 로드 밸런서 리소스와 설정을 사용할 수 있습니다.
클라우드 템플릿 설계 코드 옵션의 요약은 vRealize Automation 리소스 유형 스키마를 참조하십시오.
이러한 예에서는 기본 클라우드 템플릿 설계 내의 네트워크, 보안 및 로드 밸런서 리소스를 보여줍니다.
네트워크
리소스 시나리오 | 예제 클라우드 템플릿 설계 코드 |
---|---|
DHCP IP 할당을 사용하여 여러 NIC가 vSphere 및 NSX 네트워크에 연결된 vSphere 시스템 | 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 |
vlanIds 속성을 사용하여 VLAN 3개(123, 456 및 7)의 어레이를 지정하는 NSX 전용 네트워크 |
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 |
Azure VM 배포를 위한 정적 IP 주소가 있는 전용 네트워크 추가 | 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 |
vRealize Automation IPAM에서 정적 IP 할당을 사용할 수 있습니다(vRealize Automation에서 제공되는 내부 또는 VMware Marketplace에서 사용 가능한 Infloblox 플러그인 중 하나와 같은 vRealize Automation IPAM SDK 기반 외부). vRealize Automation 클라우드 템플릿의 네트워크 리소스에 대한 자세한 내용의 "주의 사항" 섹션에 설명된 대로 |
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 |
기존 배포를 위한 Cloud.NSX.NAT 리소스에서 NAT 및 DNAT 포트 포워딩 규칙을 추가하거나 편집합니다. |
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 |
공용 IP 대신 내부 IP를 사용하는 공용 클라우드 시스템. 이 예에서는 특정 네트워크 ID를 사용합니다. 참고: |
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 |
NSX 네트워크 리소스 유형을 사용하여 라우팅된 네트워크. |
Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: routed |
클라우드 템플릿의 시스템 NIC 리소스에 태그를 추가합니다. | 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 |
아웃바운드 네트워크에 대한 NSX-T 논리적 스위치에 태그를 지정합니다. 태그 지정은 NSX-T 및 VMware Cloud on AWS에 대해 지원됩니다. 이 시나리오에 대한 자세한 내용은 커뮤니티 블로그 게시물 Creating Tags in NSX with Cloud Assembly를 참조하십시오. |
Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: outbound tags: - key: app value: opencart |
보안 그룹
리소스 시나리오 | 예제 클라우드 템플릿 설계 코드 |
---|---|
시스템 NIC에 제약 조건 태그가 적용된 기존 보안 그룹입니다. 기존 보안 그룹을 사용하려면 securityGroupType 속성에 existing을 입력합니다. 태그 제약 조건을 사용하여 기존 보안 그룹을 할당하기 위해 Cloud.SecurityGroup 리소스에 태그를 할당할 수 있습니다. 태그가 포함되지 않은 보안 그룹은 클라우드 템플릿 설계에서 사용할 수 없습니다.
|
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 |
|
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 |
다음을 포함하여 2개의 보안 그룹이 있는 복잡한 클라우드 템플릿:
이 샘플은 다양한 조합의 프로토콜 및 포트, 서비스, IP CIDR(소스 및 대상으로), IP 범위(소스 또는 대상으로)를 비롯해 임의, IPv6 및 (::/0)에 대한 옵션을 설명합니다. 시스템 NIC의 경우 연결된 네트워크 및 보안 그룹을 지정할 수 있습니다. NIC 인덱스 또는 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 |
로드 밸런서
리소스 시나리오 | 예제 클라우드 템플릿 설계 코드 |
---|---|
로드 밸런서 로깅 수준, 알고리즘 및 크기를 지정합니다. |
로깅 수준, 알고리즘 및 크기의 사용을 보여 주는 샘플 NSX 로드 밸런서: 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 |
로드 밸런서를 명명된 시스템 또는 명명된 시스템 NIC와 연결합니다. 첫 번째 예에서 배포는 두 번째 예에서 배포는 세 번째 예에서는 동일한 |
instances 속성을 사용하여 시스템 ID 또는 시스템 네트워크 ID를 정의할 수 있습니다.
|
NSX 로드 밸런서에 상태 점검 설정을 추가합니다. 추가 옵션에는 httpMethod , requestBody 및 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} |
원 암(one arm) 로드 밸런서가 있는 주문형 네트워크입니다. |
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 |
로드 밸런서가 있는 기존 네트워크입니다. |
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 |
자세히 알아보기
- NSX-T를 사용하는 vRealize Automation Cloud Assembly 로드 밸런서 심화 연구
- Cloud Assembly 및 NSX를 통한 네트워크 자동화 – 1부(NSX-T, vCenter 클라우드 계정 및 네트워크 CIDR 포함)
- Cloud Assembly 및 NSX를 통한 네트워크 자동화 – 2부(기존 및 아웃바운드 네트워크 유형 사용 포함)
- Cloud Assembly 및 NSX를 통한 네트워크 자동화 – 3부(기존 및 주문형 보안 그룹 사용 포함)
- Cloud Assembly 및 NSX를 통한 네트워크 자동화 – 4부(기존 및 주문형 로드 밸런서 사용 포함)