Во время итеративной разработки облачного шаблона или после получения финальной версии шаблона можно открыть доступ к шаблону в каталоге самообслуживания Service Broker. Для удобства пользователей можно создать настраиваемую форму запроса. Настраиваемая форма более функциональна, чем простой ввод данных шаблона.

Начало работы

  • Убедитесь, что инфраструктура поддерживает ваш шаблон. Если это не так, для начала изучите Учебник «Настройка и тестирование инфраструктуры и развертываний vSphere в Cloud Assembly» и другие учебники.
  • Убедитесь, что некоторые пулы ресурсов помечены как env:dev и env:prod. Дополнительные сведения см. в разделе Учебник «Использование тегов в Cloud Assembly для управления ресурсами vSphere».
  • Убедитесь в том, что у вас есть развертываемый облачный шаблон, аналогичный приведенному ниже. В этом учебнике используется следующий шаблон.
    formatVersion: 1
    inputs:
      installedOS:
        type: string
        title: Operating System
        description: Select the operating system.
        enum:
          - centos
          - ubuntu
      placement:
        type: string
        enum:
          - 'env:dev'
          - 'env:prod'
        default: 'env:dev'
        title: Select Placement for Deployment
        description: Target Environment
    resources:
      Cloud_vSphere_Disk_1:
        type: Cloud.vSphere.Disk
        properties:
          capacityGb: 1
      Cloud_vSphere_Machine_1:
        type: Cloud.vSphere.Machine
        properties:
          image: '${input.installedOS}'
          installedOS: '${input.installedOS}'
          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_NSX_Network_1:
        type: Cloud.NSX.Network
        properties:
          networkType: existing
          tags:
            - key: NGINX
              value: web

Шаг 1. Добавление входных данных в облачный шаблон

К существующим данным о типе ОС в ходе этого процесса добавляется информация о размере и обновляются сведения о размещении. В Service Broker можно настроить следующие три поля формы запроса.

  1. В Cloud Assembly выберите Проект > Облачный шаблон, создайте шаблон или откройте приведенный выше.

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

  2. Добавьте переменную размера и задайте размеры в разделе «Входные данные».
    1. а.В разделе Cloud_vSphere_Machine_1 добавьте переменную в свойство flavor.
       flavor: '${input.size}'
    2. б.В разделе «Входные данные» добавьте пользовательский размер для имени, чтобы пользователь мог выбрать размер развертывания. Это действие сравнимо с подбором размера одежды. Размер задается для облачных зон.
       size:
          type: string
          title: Deployment size
          description: Select the the deployment t-shirt size.
          enum:
            - small
            - medium
            - large
  3. Измените данные о размещении с тега на описательный термин.

    Эти теги ограничений будут сопоставлены с тегами возможностей, добавленными в Учебник «Использование тегов в Cloud Assembly для управления ресурсами vSphere».

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

      В этом примере используется атрибут oneOf, который позволяет при отправке строк, требуемых для развертывания, использовать метку на естественном языке. Например, теги env:dev и env:prod.

       
      placement:
          type: string
          oneOf:
            - title: Development
              const: 'env:dev'
            - title: Production
              const: 'env:prod'
          default: 'env:dev'
          title: Select Deployment Placement
          description: Target Environment
  4. Убедитесь, что код YAML полностью выглядит так, как в следующем примере.
    formatVersion: 1
    inputs:
      installedOS:
        type: string
        title: Operating system
        description: Select the operating system.
        enum:
          - centos
          - ubuntu
      placement:
        type: string
        oneOf:
          - title: Development
            const: 'env:dev'
          - title: Production
            const: 'env:prod'
        default: 'env:dev'
        title: Select Deployment Placement
        description: Target Environment
      size:
        type: string
        title: Deployment size
        description: Select the the deployment t-shirt size.
        enum:
          - small
          - medium
          - large
    resources:
      Cloud_vSphere_Disk_1:
        type: Cloud.vSphere.Disk
        properties:
          capacityGb: 1
      Cloud_vSphere_Machine_1:
        type: Cloud.vSphere.Machine
        properties:
          image: '${input.installedOS}'
          installedOS: '${input.installedOS}'
          flavor: '${input.size}'
          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_NSX_Network_1:
        type: Cloud.NSX.Network
        properties:
          networkType: existing
          tags:
            - key: NGINX
              value: web
  5. Щелкните Развернуть и убедитесь, что вторая страница запроса выглядит, как в следующем примере. После развертывания проверьте, находится ли оно в выбранной среде разработки пула производственных ресурсов.

    Страница 2 формы запроса развертывания с данными о типе ОС, размещении и размере развертывания.

Шаг 2. Создание версии и публикация облачного шаблона

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

  1. Выберите Проект > Облачный шаблон и откройте шаблон на холсте проекта.
  2. Щелкните Версия и введите описание.

    Диалоговое окно создания версии с номером, описанием и флажком в поле «Опубликовать».
  3. Поставьте флажок Опубликовать и нажмите Создать.

    Публикация облачного шаблона не предполагает его автоматическое добавление в Service Broker, но позволяет найти его и добавить в каталог.

Шаг 3. Добавление облачного шаблона в каталог Service Broker

Каталог «Service Broker» предназначен для предоставления облачных шаблонов другим пользователям в организации, которым не нужно уметь создавать шаблоны. Они используют каталог, чтобы их развертывать.

Прежде чем добавить шаблон в качестве элемента каталога, его необходимо импортировать в Service Broker. Импортируются только опубликованные облачные шаблоны.

  1. Чтобы открыть Service Broker из Cloud Assembly, перейдите в меню приложения в правом верхнем углу.
    Открыто меню приложения в правом верхнем углу страницы, выделен элемент Service Broker.
  2. Нажмите Service Broker.
  3. Импортируйте облачный шаблон.
    1. а.В Service Broker выберите Содержимое и политики > Источники содержимого.
    2. б.Щелкните Создать, а затем выберите VMware Cloud Templates.
    3. в.Введите Имя.

      В этом учебнике введите Cloud Assembly DevProject.

    4. г.В поле Проект выберите Проект разработки, созданный в Cloud Assembly.
    5. д.Щелкните Проверить.

      Система должна сообщить, что найден по крайней мере один элемент.

    6. е.После проверки щелкните Создать и импортировать.

      Cloud Assembly DevProject добавляется в список в качестве источника содержимого.

  4. Откройте доступ к шаблону в каталоге.
    1. а.Выберите Содержимое и политики > Общий доступ к содержимому.
    2. б.В поле Проект выберите Проект разработки.
    3. в.Нажмите Добавить элементы, а затем выберите ???
    4. г.В диалоговом окне Общий доступ к элементам выберите Cloud Assembly DevProject и нажмите Сохранить.
  5. Чтобы убедиться, что шаблон разработки добавлен в каталог, щелкните Каталог.
  6. Щелкните Запрос на карточке шаблона разработки.

    Здесь должны отображаться входные данные из облачного шаблона. Далее требуется настроить форму запроса.


    Форма запроса каталога для элемента каталога «Шаблон развертывания». Содержит имя развертывания, операционную систему, размещение и параметры размера развертывания.

Шаг 4. Создание настраиваемой формы для шаблона

Эта настраиваемая форма нужна, чтобы пользователь мог выбрать операционную систему и размещение на основе тегов env:dev или env:prod. Теги env:dev позволяют пользователю выбрать малый или средний размер; большой размер недоступен. Если пользователь использует env:prod, большой размер выбрать также нельзя. Он скрыт от пользователя, но включается в запрос.

  1. Для создания настраиваемой формы в Service Broker выберите Содержимое и политики > Содержимое.
  2. Щелкните вертикальное многоточие слева от шаблона разработки, а затем Настройка.
  3. Настройте входной параметр.
    1. а.Выбирая поля на холсте, настройте свойства так, как указано в следующей таблице.
      Название поля холста Внешний вид Значения Ограничения
      Операционная система

      Метка и тип

      • Метка = операционная система

      Параметры значений

      • Параметры значений = константа
      • Источник значения = centos|CentOS,ubuntu|Ubuntu

      В этом примере используются значения изменения всех названий операционных систем нижнего уровня на предпочтительное название ОС.

      Выберите размещение развертывания

      Параметры значений

      • Параметры значений = константа
      • Источник значения = env:dev|Development,env:prod|Production
      Размер развертывания

      Видимость

      • Источник значения = условное значение
      • Заданное значение = Да, если значение «Выбрать размещение развертывания» равно env:dev

      Значение по умолчанию

      • Источник значения = условное значение
      • Заданное значение = большой, если значение «Выбрать размещение» равно env:prod

      Параметры значений

      • Параметры значений = константа
      • Источник значения = small|Small,medium|Medium

      Обратите внимание, что источник значений не содержит значение «Большой». Оно отсутствует, так как доступно только для параметра «Производство», где является единственным значением. Значение «Большой» включается в запрос развертывания автоматически.

    2. б.Чтобы включить форму в каталоге, щелкните Включить.
    3. в.Нажмите Сохранить.
  4. Чтобы результаты были верны, хотя бы при отправке запросов для малой разработки и производства, протестируйте форму в каталоге.

    При проверке результатов используйте следующие примеры.

    1. а.Проверьте форму запроса малой разработки, введя имя, в данном случае Test small, и выбрав параметры CentOS, «Разработка» и «Малая».
      Форма запроса каталога с именем развертывания Test small и выбранным параметром «Разработка» и «Малая».
    2. б.Чтобы проверить малое развертывание разработки, выберите Ресурсы > Развертывания и нажмите развертывание Test small.
    3. в.На вкладке «Топология» щелкните Cloud_vSphere_Machine, а затем найдите раздел «Настраиваемые свойства» на правой панели.

      Просмотрите значения cpuCount = 2 и flavor = small.


      Страница развертывания топологии, где на холсте выделено Cloud_vSphere_Machine, а на правой панели cpuCount=2 и flavor=small.
    4. г.Проверьте форму запроса производства, введя имя, в данном случае Test large, и выбрав параметры CentOS и «Производство».

      Помните, что вы настроили форму так, чтобы не отображать и не запрашивать пользователя выбрать размер.


      Форма запроса каталога с именем развертывания Test large и выбранным параметром «Производство».
    5. д.Чтобы проверить развертывание в производственной области, выберите Ресурсы > Развертывания и нажмите развертывание Test large.
    6. е.На вкладке «Топология» щелкните Cloud_vSphere_Machine, а затем найдите раздел «Настраиваемые свойства» на правой панели.

      Просмотрите значения cpuCount = 8 и flavor = large.


      Страница развертывания топологии, где на холсте выделено Cloud_vSphere_Machine, а на правой панели cpuCount=8 и flavor=large.

Шаг 5. Управление версиями облачного шаблона в каталоге

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

На шаге 2 создается версия и выпускается шаблон. Теперь вы знакомы с процессом. На шаге 3 шаблон добавляется в каталог. Эта процедура объединяет два шага, так как вы выполняете итеративную разработку и обновляете каталог, используя последнюю версию.

В каталоге могут быть доступны несколько версий.

  1. В Cloud Assembly создайте версию шаблона, которую необходимо сделать доступной в каталоге.
    1. а.Выберите Проект > Облачный шаблон и откройте шаблон на холсте проекта.
    2. б.Нажмите Журнал версий.
    3. в.Найдите версию, которую нужно добавить в каталог, и нажмите Версия.
    4. г.Введите описание, установите флажок Версия и нажмите Создать.

      На этом этапе можно сохранить старую версию в каталоге. Если нужно иметь несколько версий, пропустите следующий шаг («Отмена публикации версии»).

    5. д.Чтобы сделать доступной только одну версию шаблона в каталоге, проверьте журнал версий и нажмите Отменить публикацию для каждой версии, которая в каталоге не нужна.
  2. Чтобы обновить каталог Service Broker, используя последнюю версию, и заменить любую старую версию, необходимо получить новую версию.
    1. а.В Service Broker выберите Содержимое и политики > Источники содержимого.
    2. б.Щелкните источник содержимого Cloud Assembly DevProject, который используется в этом учебнике.
    3. в.Щелкните Проверить.

      Должно появиться сообщение о том, что элемент найден.

    4. г.Нажмите Сохранить и импортировать.
  3. Убедитесь, что в каталоге отображаются нужные версии, или версии отсутствуют.
    1. а.В Service Broker нажмите Каталог.
    2. б.Найдите нужный элемент каталога и нажмите Запрос.
    3. в.В верхней части формы запроса нажмите Версия и проверьте наличие версии или версий.

    На следующем снимке экрана отображается 8.


    Снимок экрана для новой формы запроса с одной доступной версией.