Теги — это эффективные метаданные, которые можно связать с ресурсами и добавлять в шаблоны. Теги можно использовать в различных сценариях управления, в том числе, для размещения рабочей нагрузки и разметки ресурсов.

Краткое введение в теги

В этом разделе представлены простые сведения о тегах, которые применяются к указанным шагам. Более подробные сведения о тегах см. в Как использовать теги для управления ресурсами и развертываниями Cloud Assembly.

  • Теги возможностей и ограничений

    Теги можно использовать для управления развертываниями на основе возможностей ресурсов. Например, администратору облака может быть необходимо развертывать итерационно разрабатываемые облачные шаблоны в специальном пуле ресурсов для разработки, а шаблоны, предназначенные для производственной среды, — в другом пуле ресурсов.

    • Чтобы определить возможности ресурсов, в них добавляются теги возможностей.
    • Теги ограничений применяются в облачных шаблонах и определяют ресурсы, которые должны использоваться развернутыми ресурсами.
  • Теги-метки

    Для управления ресурсами можно добавлять теги в виде меток или описаний объектов. Для управления нужно использовать результаты поиска наилучших ресурсов, которые могут быть разными для похожих объектов, добавление пользовательских аннотаций к объектам, предоставление сведений сторонним системам, создание критериев членства в группах безопасности, обеспечение согласованности между связанными доменами программно-определяемого ЦОД.

Перед началом работы

Использование тегов для управления размещением рабочей нагрузки

В этом простом примере используются теги среды разработки и производственной среды для демонстрации способа применения тегов возможностей и ограничений. Сначала необходимо добавить теги возможностей в вычислительные ресурсы пула ресурсов vCenter Server, а затем добавить теги в облачный шаблон. В примере облачного шаблона показан способ использования входных данных, с помощью которого пользователь, выполняющий развертывание, может указать, где следует выполнять развертывание: в среде разработки или в пуле ресурсов производственной среды.

Пример использования одинаковых тегов для определения размещения в мультиоблачной среде см. в Учебник «Настройка и тестирование инфраструктуры и развертываний с несколькими облачными средами в Cloud Assembly».

  1. Добавьте теги возможностей в пулы ресурсов.
    1. а.Выберите пункт Инфраструктура > Ресурсы > Вычислительные ресурсы.
    2. б.Откройте облачную зону и нажмите Вычислительные ресурсы.Снимок экрана с вкладкой «Вычислительные ресурсы» для облачной зоны. На этой вкладке отображаются пулы ресурсов без тегов.
    3. в.Найдите и щелкните пул ресурсов, в котором необходимо развернуть рабочие нагрузки, связанные с разработкой.

      В этом учебнике используются следующие значения. Помните, что все значения приведены только для примера. Необходимо указать значения для вашей среды.

      Пример пула ресурсов Пример тега
      wid01-clu01/Development env:dev
      wid01-clu01/Production env:prod
    4. г.Добавьте тег env.dev и нажмите кнопку Сохранить..
      Снимок экрана с диалоговым окном, которое используется для добавления тега. Он включает в себя пример значения env:dev.
    5. д.Повторите процесс для пула ресурсов, в котором необходимо развернуть производственные рабочие нагрузки, и добавьте тег env:prod.
  2. Убедитесь, что теги возможностей добавлены в пулы ресурсов в облачной зоне.
    1. а.Выберите Инфраструктура > Настроить > Облачные зоны.
    2. б.Откройте облачную зону, связанную с проектом, и нажмите Вычислительные ресурсы.

      В этом примере облачной зоной является облачная зона учетной записи vCenter, а теги добавлены в два пула ресурсов (wid01-clu01/Development и wid01-clu01/Production).

      Снимок экрана с облачной зоной vCenter Server, где одна облачная зона имеет тег env:dev, а другая — тег env:prod.
  3. Добавьте теги ограничений в облачный шаблон.

    Теги ограничений используются для указания места развертывания шаблона.

    1. а.Выберите Проектирование > Облачные шаблоны, а затем откройте шаблон.

      В этом учебнике используется шаблон с именем Development Project.

    2. б.Ознакомьтесь с кодом YAML для шаблона на панели «Код».

      Этот код YAML является отправной точкой для данного учебника.

      formatVersion: 1
      inputs: {}
      resources:
        Cloud_vSphere_Machine_1:
          type: Cloud.vSphere.Machine
          properties:
            image: centos
            flavor: medium
            networks:
              - network: '${resource.Cloud_NSX_Network_1.id}'
            attachedDisks:
              - source: '${resource.Cloud_vSphere_Disk_1.id}'
        Cloud_vSphere_Disk_1:
          type: Cloud.vSphere.Disk
          properties:
            capacityGb: 5
        Cloud_NSX_Network_1:
          type: Cloud.NSX.Network
          properties:
            networkType: existing
      
    3. в.Добавьте тег ограничения к ресурсу Cloud_vSphere_Machine_1, используя ${input.placement} в качестве переменной.
      resources:
        Cloud_vSphere_Machine_1:
          type: Cloud.vSphere.Machine
          properties:
            image: centos
            flavor: medium
            constraints: 
              - tag: '${input.placement}'
            networks:
              - network: '${resource.Cloud_NSX_Network_1.id}'
            attachedDisks:
              - source: '${resource.Cloud_vSphere_Disk_1.id}'
    4. г.Определите переменную размещения в разделе «Входные данные».
      inputs:
        placement:
          type: string
          enum:
            - env:dev
            - env:prod
          default: env:dev
          title: Select Placement for Deployment
          description: Target Environment
    5. д.Убедитесь, что итоговый код YAML похож на следующий пример.
      formatVersion: 1
      inputs:
        placement:
          type: string
          enum:
            - 'env:dev'
            - 'env:prod'
          default: 'env:dev'
          title: Select Placement for Deployment
          description: Target Environment
      resources:
        Cloud_vSphere_Machine_1:
          type: Cloud.vSphere.Machine
          properties:
            image: centos
            flavor: small
            constraints:
              - tag: '${input.placement}'
            networks:
              - network: '${resource.Cloud_NSX_Network_1.id}'
            attachedDisks:
              - source: '${resource.Cloud_vSphere_Disk_1.id}'
        Cloud_vSphere_Disk_1:
          type: Cloud.vSphere.Disk
          properties:
            capacityGb: 5
        Cloud_NSX_Network_1:
          type: Cloud.NSX.Network
          properties:
            networkType: existing
    6. е.Чтобы посмотреть, как переменная тега работает с доступными ресурсами, нажмите Тестировать, а затем выберите env:dev.
      Снимок экрана диалогового окна тестирования с входными данными «Выбор размещения для развертывания» и значением env:dev.

      Повторите тест, используя env:prod. После успешного выполнения обоих тестов разверните шаблон и убедитесь, что он работает.

  4. Разверните шаблон, чтобы протестировать размещение рабочей нагрузки.
    1. а.В конструкторе облачных шаблонов щелкните Развернуть.
    2. б.Введите Deployment Tag Dev в поле Имя развертывания и нажмите Далее.
    3. в.Выберите env:dev в раскрывающемся меню Выбор размещения для развертывания и нажмите Развернуть.
  5. Убедитесь, что ресурсы шаблона развернуты в выбранном пуле ресурсов.
    1. а.Выберите Ресурсы > Развертывания и найдите развертывание Deployment Tag Dev.
    2. б.Откройте сведения о развертывании и нажмите Топология.
    3. в.Щелкните компьютер vSphere и разверните сведения о компьютере на правой панели.
    4. г.В разделе Общие найдите Вычислительный узел и убедитесь, что значение соответствует пулу ресурсов, который соответствует тегу env:dev.

      В этом примере используется значение wid01-clu01 / Development. Оно показывает, что рабочая нагрузка была развернута в нужном пуле ресурсов на основе выбранного тега ограничений.


      Снимок экрана страницы топологии развертывания с выбранным компьютером vSphere в разделе «Вычислительный узел» на правой панели.
    5. д.Повторите процесс развертывания. В этот раз выберите env:prod.

Добавление тегов в качестве меток, которые можно использовать в vCenter Server и NSX-T

Теги можно добавлять в развертывания, которые затем можно использовать для управления ресурсами.

В этом примере добавляются теги для идентификации компьютера MySQL и сети. Кроме того, добавляется тег для идентификации веб-сети. С учетом того, как теги работают в существующих сетях по сравнению с сетями по требованию, можно выбрать один из двух вариантов.

  • В случае использования профиля существующей сети, который применялся в предыдущем разделе, тег NGINX:web не добавляется к существующим объектам в NSX-T. Поэтому операции проверки в отношении этого тега в NSX-T можно игнорировать.
  • В случае создания профиля сети по требованию можно обновить сеть в коде YAML, чтобы использовать маршрутизируемую сеть или сеть по требованию. В этом примере используется сеть по требованию, поэтому показан тег NGINX:web для нового объекта в NSX-T.

Следующий код YAML взят из предыдущего примера, за исключением того, что в нем используется тип маршрутизируемой сети по требованию. Код содержит теги ограничений.

В этом учебнике используются следующие значения. Помните, что все значения приведены только для примера. Необходимо указать значения для вашей среды.

formatVersion: 1
inputs:
  placement:
    type: string
    enum:
      - 'env:dev'
      - 'env:prod'
    default: 'env:dev'
    title: Select Placement for Deployment
    description: Target Environment
resources:
  Cloud_vSphere_Machine_1:
    type: Cloud.vSphere.Machine
    properties:
      image: centos
      flavor: small
      constraints:
        - tag: '${input.placement}'
      networks:
        - network: '${resource.Cloud_NSX_Network_1.id}'
      attachedDisks:
        - source: '${resource.Cloud_vSphere_Disk_1.id}'
  Cloud_vSphere_Disk_1:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 5
  Cloud_NSX_Network_1:
    type: Cloud.NSX.Network
    properties:
      networkType: routed
      constraints:
        - tag: 'net:od'
      
  1. Выберите Проектирование > Облачные шаблоны, а затем откройте шаблон.
  2. В свойствах Cloud_vSphere_Machine_ добавьте следующий тег.
            tags: 
            - key: db
              value: mysql
        
  3. Добавьте теги сетевого адаптера вычислительной машины.
            tags: 
            - key: db
              value: mysql
  4. Добавьте теги логического коммутатора или сегмента NSX.
            tags: 
            - key: NGINX
              value: web
  5. Убедитесь, что код YAML похож на код в следующем примере.
    formatVersion: 1
    inputs:
      placement:
        type: string
        enum:
          - 'env:dev'
          - 'env:prod'
        default: 'env:dev'
        title: Select Placement for Deployment
        description: Target Environment
    resources:
      Cloud_vSphere_Machine_1:
        type: Cloud.vSphere.Machine
        properties:
          image: centos
          flavor: small
          constraints:
            - tag: '${input.placement}'
          tags: 
            - key: db
              value: mysql
          networks:
            - network: '${resource.Cloud_NSX_Network_1.id}'
              tags: 
                - key: db
                  value: mysql
          attachedDisks:
            - source: '${resource.Cloud_vSphere_Disk_1.id}'
      Cloud_vSphere_Disk_1:
        type: Cloud.vSphere.Disk
        properties:
          capacityGb: 5
      Cloud_NSX_Network_1:
        type: Cloud.NSX.Network
        properties:
          networkType: routed
          constraints:
            - tag: 'net:od'
          tags: 
            - key: NGINX
              value: web
  6. Разверните шаблон.

    В этом примере используется шаблон с именем Development template w tags.

  7. Чтобы проверить теги в развертывании, откройте развертывание и перейдите на вкладку Топология.
    1. а.Щелкните компьютер в топологии.
    2. б.Разверните раздел Общие данного компьютера и найдите метку «Теги».

      Тег имеет значение db:mysql.

    3. в.Разверните раздел Сеть и найдите столбец «Теги» для сети.

      Тег имеет значение db:mysql.


      Снимок экрана с вкладкой топологии развертывания с выбранным компьютером и тегами, выделенными на правой панели.
    4. г.Щелкните сеть в топологии и разверните раздел Общие, чтобы найти метку «Тег».

      Тег имеет значение NGINX:web.


      Снимок экрана с вкладкой топологии развертывания с выбранной сетью и тегом, выделенным на правой панели.
  8. Чтобы проверить теги в vCenter Server, войдите в экземпляр vCenter Server, где развернута эта рабочая нагрузка.
    1. а.Найдите виртуальную машину и панель «Теги».
      Снимок экрана с виртуальной машиной в vCenter Server и выделенной панелью «Теги».
  9. Чтобы проверить теги в NSX-T, войдите в экземпляр NSX-T, где настроена эта сеть.

    Теги сети и теги компьютеров добавляются в NSX-T.

    1. а.Нажмите Политика в правом верхнем углу.
    2. б.Чтобы найти тег db:mysql, связанный с сетевым адаптером, найдите mysql.
    3. в.Нажмите Логические порты и найдите развернутый компьютер vSphere.
    4. г.Щелкните число в столбце «Теги».

      Поля «Область» и «Тег» содержат, соответственно, значения db и mysql.


      Снимок экрана с логическим портом виртуальной машины с выделенными тегами.
    5. д.Чтобы найти тег NGINX:web, связанный с сегментом, найдите сеть.

      В данном примере имя сети — Cloud_NSX_Network_1-mcm1292-163799928607.

    6. е.Найдите строку «Сегменты» и щелкните число в столбце «Теги».

      Поля «Область» и «Тег» содержат, соответственно, значения NGINX и web.


      Снимок экрана с сегментом сети с выделенными тегами.