Во время итеративной разработки облачного шаблона или после получения финальной версии шаблона можно открыть доступ к шаблону в каталоге самообслуживания 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 можно настроить следующие три поля формы запроса.
- В Cloud Assembly выберите , создайте шаблон или откройте приведенный выше.
Образец шаблона используется для иллюстрации различных параметров и включает в себя образцы значений. Адаптируйте его для своей среды.
- Добавьте переменную размера и задайте размеры в разделе «Входные данные».
- а.В разделе Cloud_vSphere_Machine_1 добавьте переменную в свойство
flavor
.flavor: '${input.size}'
- б.В разделе «Входные данные» добавьте пользовательский размер для имени, чтобы пользователь мог выбрать размер развертывания. Это действие сравнимо с подбором размера одежды. Размер задается для облачных зон.
size: type: string title: Deployment size description: Select the the deployment t-shirt size. enum: - small - medium - large
- а.В разделе Cloud_vSphere_Machine_1 добавьте переменную в свойство
- Измените данные о размещении с тега на описательный термин.
Эти теги ограничений будут сопоставлены с тегами возможностей, добавленными в Учебник «Использование тегов в Cloud Assembly для управления ресурсами vSphere».
- а.В разделе «Входные данные» добавьте пользовательский элемент размещение, чтобы пользователь мог выбрать среду разработки или производственную среду в качестве области размещения для развертывания.
В этом примере используется атрибут
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
- а.В разделе «Входные данные» добавьте пользовательский элемент размещение, чтобы пользователь мог выбрать среду разработки или производственную среду в качестве области размещения для развертывания.
- Убедитесь, что код 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
- Щелкните Развернуть и убедитесь, что вторая страница запроса выглядит, как в следующем примере. После развертывания проверьте, находится ли оно в выбранной среде разработки пула производственных ресурсов.
Шаг 2. Создание версии и публикация облачного шаблона
Теперь у вас есть шаблон для развертывания, и вы можете открыть к нему доступ в каталоге Service Broker и позволить другим пользователям развертывать его. Чтобы облачный шаблон можно было найти и добавить в каталог, необходимо опубликовать его. Для этого нужно создать новую версию, сделать моментальный снимок шаблона, а затем опубликовать его.
- Выберите и откройте шаблон на холсте проекта.
- Щелкните Версия и введите описание.
- Поставьте флажок Опубликовать и нажмите Создать.
Публикация облачного шаблона не предполагает его автоматическое добавление в Service Broker, но позволяет найти его и добавить в каталог.
Шаг 3. Добавление облачного шаблона в каталог Service Broker
Каталог «Service Broker» предназначен для предоставления облачных шаблонов другим пользователям в организации, которым не нужно уметь создавать шаблоны. Они используют каталог, чтобы их развертывать.
Прежде чем добавить шаблон в качестве элемента каталога, его необходимо импортировать в Service Broker. Импортируются только опубликованные облачные шаблоны.
- Чтобы открыть Service Broker из Cloud Assembly, перейдите в меню приложения в правом верхнем углу.
- Нажмите Service Broker.
- Импортируйте облачный шаблон.
- а.В Service Broker выберите .
- б.Щелкните Создать, а затем выберите VMware Cloud Templates.
- в.Введите Имя.
В этом учебнике введите Cloud Assembly DevProject.
- г.В поле Проект выберите Проект разработки, созданный в Cloud Assembly.
- д.Щелкните Проверить.
Система должна сообщить, что найден по крайней мере один элемент.
- е.После проверки щелкните Создать и импортировать.
Cloud Assembly DevProject добавляется в список в качестве источника содержимого.
- Откройте доступ к шаблону в каталоге.
- а.Выберите .
- б.Нажмите Создать политику, а затем Политика общего доступа к содержимому.
- в.Введите имя.
В этом учебнике введите Политика DevProject.
- г.В списке Область выберите Проект разработки.
- д.В разделе Общий доступ к содержимому нажмите Добавить элементы.
- е.В диалоговом окне Общий доступ к элементам выберите
Cloud Assembly DevProject
и нажмите Сохранить. - ё.В разделе Пользователи выберите пользователей и группы проекта, для которых нужно просмотреть элемент в каталоге.
- ж.Щелкните Создать.
- Чтобы убедиться, что шаблон разработки добавлен в каталог, щелкните Каталог.
- Щелкните Запрос на карточке шаблона разработки.
Здесь должны отображаться входные данные из облачного шаблона. Далее требуется настроить форму запроса.
Шаг 4. Создание настраиваемой формы для шаблона
Эта настраиваемая форма нужна, чтобы пользователь мог выбрать операционную систему и размещение на основе тегов env:dev или env:prod. Теги env:dev позволяют пользователю выбрать малый или средний размер; большой размер недоступен. Если пользователь использует env:prod, большой размер выбрать также нельзя. Он скрыт от пользователя, но включается в запрос.
- Для создания настраиваемой формы в Service Broker выберите .
- Щелкните вертикальное многоточие слева от шаблона разработки, а затем Настройка.
- Настройте входной параметр.
- а.Выбирая поля на холсте, настройте свойства так, как указано в следующей таблице.
Название поля холста Внешний вид Значения Ограничения Операционная система Метка и тип
- Метка = операционная система
Параметры значений
- Параметры значений = константа
- Источник значения =
centos|CentOS,ubuntu|Ubuntu
В этом примере используются значения изменения всех названий операционных систем нижнего уровня на предпочтительное название ОС.
Выберите размещение развертывания Параметры значений
- Параметры значений = константа
- Источник значения =
env:dev|Development,env:prod|Production
Размер развертывания Видимость
- Источник значения = условное значение
- Заданное значение = Да, если значение «Выбрать размещение развертывания» равно env:dev
Значение по умолчанию
- Источник значения = условное значение
- Заданное значение = большой, если значение «Выбрать размещение» равно env:prod
Параметры значений
- Параметры значений = константа
- Источник значения =
small|Small,medium|Medium
Обратите внимание, что источник значений не содержит значение «Большой». Оно отсутствует, так как доступно только для параметра «Производство», где является единственным значением. Значение «Большой» включается в запрос развертывания автоматически.
- б.Чтобы включить форму в каталоге, щелкните Включить.
- в.Нажмите Сохранить.
- а.Выбирая поля на холсте, настройте свойства так, как указано в следующей таблице.
- Чтобы результаты были верны, хотя бы при отправке запросов для малой разработки и производства, протестируйте форму в каталоге.
При проверке результатов используйте следующие примеры.
- а.Проверьте форму запроса малой разработки, введя имя, в данном случае Test small, и выбрав параметры CentOS, «Разработка» и «Малая».
- б.Чтобы проверить малое развертывание разработки, выберите и нажмите развертывание Test small.
- в.На вкладке «Топология» щелкните Cloud_vSphere_Machine, а затем найдите раздел «Настраиваемые свойства» на правой панели.
Просмотрите значения cpuCount = 2 и flavor = small.
- г.Проверьте форму запроса производства, введя имя, в данном случае Test large, и выбрав параметры CentOS и «Производство».
Помните, что вы настроили форму так, чтобы не отображать и не запрашивать пользователя выбрать размер.
- д.Чтобы проверить развертывание в производственной области, выберите и нажмите развертывание Test large.
- е.На вкладке «Топология» щелкните Cloud_vSphere_Machine, а затем найдите раздел «Настраиваемые свойства» на правой панели.
Просмотрите значения cpuCount = 8 и flavor = large.
- а.Проверьте форму запроса малой разработки, введя имя, в данном случае Test small, и выбрав параметры CentOS, «Разработка» и «Малая».
Шаг 5. Управление версиями облачного шаблона в каталоге
В большинстве случаев в каталоге Service Broker требуется иметь только последние облачные шаблоны. Следующая процедура поддерживает итеративный процесс разработки: вы выпускаете версию шаблона и добавляете ее в каталог. Затем вы улучшаете шаблон и хотите заменить текущую версию на новую.
На шаге 2 создается версия и выпускается шаблон. Теперь вы знакомы с процессом. На шаге 3 шаблон добавляется в каталог. Эта процедура объединяет два шага, так как вы выполняете итеративную разработку и обновляете каталог, используя последнюю версию.
В каталоге могут быть доступны несколько версий.
- В Cloud Assembly создайте версию шаблона, которую необходимо сделать доступной в каталоге.
- а.Выберите и откройте шаблон на холсте проекта.
- б.Нажмите Журнал версий.
- в.Найдите версию, которую нужно добавить в каталог, и нажмите Версия.
- г.Введите описание, установите флажок Версия и нажмите Создать.
На этом этапе можно сохранить старую версию в каталоге. Если нужно иметь несколько версий, пропустите следующий шаг («Отмена публикации версии»).
- д.Чтобы сделать доступной только одну версию шаблона в каталоге, проверьте журнал версий и нажмите Отменить публикацию для каждой версии, которая в каталоге не нужна.
- Чтобы обновить каталог Service Broker, используя последнюю версию, и заменить любую старую версию, необходимо получить новую версию.
- а.В Service Broker выберите .
- б.Щелкните источник содержимого Cloud Assembly DevProject, который используется в этом учебнике.
- в.Щелкните Проверить.
Должно появиться сообщение о том, что элемент найден.
- г.Нажмите Сохранить и импортировать.
- Убедитесь, что в каталоге отображаются нужные версии, или версии отсутствуют.
- а.В Service Broker нажмите Каталог.
- б.Найдите нужный элемент каталога и нажмите Запрос.
- в.В верхней части формы запроса нажмите Версия и проверьте наличие версии или версий.
На следующем снимке экрана отображается 8.