В проектах облачных шаблонов и развертываниях можно использовать ресурсы сети, безопасности и подсистемы балансировки нагрузки.
Общие данные о параметрах кода проекта облачного шаблона см. в разделе Схема типов ресурсов vRealize Automation.
Здесь приведены примеры ресурсов сети, групп безопасности и подсистем балансировки нагрузки в стандартных проектах облачных шаблонов.
Сценарий ресурсов | Пример кода проекта облачного шаблона |
---|---|
Компьютер vSphere с несколькими сетевыми адаптерами, связанными с сетевым ресурсом NSX. |
resources: demo-machine: type: Cloud.vSphere.Machine properties: image: ubuntu flavor: small networks: - network: '${resource.Cloud_vSphere_Network_1.id}' Cloud_vSphere_Network_1: type: Cloud.vSphere.Network properties: networkType: existing Cloud_vSphere_Network_2: type: Cloud.NSX.Network properties: networkType: existing |
Включите переадресацию портов NAT с помощью ресурса облачного шаблона Cloud.NSX.Gateway в исходящей сети. |
... gateway: type: Cloud.NSX.Gateway properties: networks: - ${resource.out.id} natRules: - index: 1 translatedInstance: ${resource.jumpbox.networks[0].id} destinationPorts: 2200 translatedPorts: 22 description: inbound ssh - index: 2 ... |
Укажите уровень и алгоритм ведения журнала балансировки нагрузки, а также его размер. |
Пример подсистемы балансировки нагрузки 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 |
Свяжите подсистему балансировки нагрузки с именованным компьютером или его сетевым адаптером. Чтобы добавить компьютер в пул подсистемы балансировки нагрузки, можно указать либо В первом примере в развертывании используется параметр Во втором примере в развертывании используется параметр В третьем примере показаны оба параметра, используемые в одном и том же варианте |
Для определения идентификатора компьютера или идентификатора сети компьютеров можно использовать свойство
instances .
|
Компьютер в общедоступном облаке для использования внутреннего IP-адреса вместо общедоступного IP-адреса. В этом примере используется конкретный идентификатор сети. Примечание. Вариант |
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-V или NSX-T с использованием типа сетевого ресурса NSX. |
Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: routed |
Добавьте тег к ресурсу сетевого адаптера компьютера в облачном шаблоне. | 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. Дополнительные сведения об этом сценарии см. в статье блога сообщества Создание тегов в NSX с помощью Cloud Assembly. |
Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: outbound tags: - key: app value: opencart |
Существующая группа безопасности с тегом ограничения, применяемым к сетевому адаптеру компьютера. Чтобы использовать существующую группу безопасности, введите значение existing для свойства securityGroupType . Для выделения существующих групп безопасности с помощью тегов ограничений ресурсу 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 |
Сложный облачный шаблон с двумя группами безопасности, содержащий следующие элементы:
Этот пример показывает различные комбинации протоколов и портов, служб, значений IP CIDR для источника и назначения, диапазон IP-адресов в качестве источника или назначения, а также параметры для any, IPv6 и (::/0). Для сетевых адаптеров компьютеров можно указать подключенную сеть и группы безопасности. Кроме того, можно указать индекс или 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 |
Сеть по требованию с подсистемой балансировки нагрузки с одним плечом. |
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 |
Подробнее
- vRealize Automation Cloud Assembly Load Balancer with NSX-T Deep Dive (Подсистема балансировки нагрузки vRealize Automation Cloud Assembly с NSX-T Deep Dive)
- Автоматизация сети с помощью Cloud Assembly и NSX — часть 1 (включая использование облачных учетных записей NSX-T и vCenter и CIDR сети)
- Автоматизация сети с помощью Cloud Assembly и NSX — часть 2 (включая использование существующей сети и исходящей сети)
- Автоматизация сети с помощью Cloud Assembly и NSX — часть 3 (включая использование существующих групп безопасности и групп безопасности по требованию)
- Автоматизация сети с помощью Cloud Assembly и NSX — часть 4 (включая использование существующей подсистемы балансировки нагрузки и подсистемы балансировки нагрузки по требованию)