Como desarrollador de plantillas de nube, debe utilizar los parámetros de entrada para que los usuarios puedan seleccionar opciones personalizadas en el momento de la solicitud.
Funcionamiento de las entradas
Cuando los usuarios proporcionan entradas, ya no es necesario guardar varias copias de las plantillas que solo son apenas diferentes. Además, las entradas pueden preparar una plantilla para las operaciones del día 2. Consulte Cómo utilizar entradas de plantilla de nube en las actualizaciones del día 2 de VMware Aria Automation.
Las siguientes entradas muestran cómo puede crear una plantilla de nube para un servidor de base de datos MySQL, donde los usuarios pueden implementar esa plantilla en diferentes entornos de recursos de nube y aplicar diferentes capacidades y credenciales cada vez.
Agregar parámetros de entrada
Agregue una sección de inputs a su código de plantilla de nube, donde establece los valores seleccionables.
En el siguiente ejemplo, se pueden seleccionar el tamaño de la máquina, el sistema operativo y el número de servidores agrupados en clúster.
inputs:
wp-size:
type: string
enum:
- small
- medium
description: Size of Nodes
title: Node Size
wp-image:
type: string
enum:
- coreos
- ubuntu
title: Select Image/OS
wp-count:
type: integer
default: 2
maximum: 5
minimum: 2
title: Wordpress Cluster Size
description: Wordpress Cluster Size (Number of nodes)
Si no se siente cómodo editando código, puede hacer clic en la pestaña Entradas del editor de código e introducir la configuración allí. El siguiente ejemplo muestra algunas entradas para la base de datos MySQL que se mencionó anteriormente.
Referencia a parámetros de entrada
A continuación, en la sección resources, haga referencia a un parámetro de entrada mediante la sintaxis ${input.property-name}.
Si el nombre de una propiedad incluye un espacio, delimite con corchetes y comillas dobles en lugar de utilizar la notación de punto: ${input[" nombre de propiedad "]}
input excepto para indicar un parámetro de entrada.
resources:
WebTier:
type: Cloud.Machine
properties:
name: wordpress
flavor: '${input.wp-size}'
image: '${input.wp-image}'
count: '${input.wp-count}'
Entrada anidada
Si desea organizar o categorizar entradas, se admite la entrada anidada. En el siguiente ejemplo, la CPU y la memoria se encuentran juntas bajo un encabezado principal de nivel.
inputs:
cluster:
type: integer
title: Cluster
default: 1
minimum: 1
maximum: 4
level:
type: object
properties:
cpu:
type: integer
title: CPU
default: 1
minimum: 1
maximum: 4
memory:
type: integer
title: Memory
default: 2048
minimum: 2048
maximum: 4096
En la sección Recursos, para hacer referencia a la entrada anidada, incluya el elemento principal en la ruta de acceso.
resources:
Disk_1:
type: Cloud.vSphere.Disk
allocatePerInstance: true
properties:
capacityGb: 1
count: ${input.cluster}
Machine_1:
type: Cloud.vSphere.Machine
allocatePerInstance: true
properties:
totalMemoryMB: ${input.level.memory}
attachedDisks:
- source: ${slice(resource.Disk_1[*].id, count.index, count.index + 1)[0]}
count: ${input.cluster}
imageRef: ubuntu
cpuCount: ${input.level.cpu}
Entrada opcional frente a entrada obligatoria
Para todos los tipos excepto booleano, la entrada del usuario es opcional de forma predeterminada. Para exigir una entrada, lleve a cabo uno de los siguientes pasos:
- Establezca un valor predeterminado.
- Cuando no tenga entradas anidadas, agregue la propiedad
populateRequiredOnNonDefaultProperties:inputs: cluster: type: integer populateRequiredOnNonDefaultProperties: true title: Cluster minimum: 1 maximum: 4Tenga en cuenta que también puede aplicar esta opción al hacer referencia a un grupo de propiedades formales:
inputs: pgmachine: type: object populateRequiredOnNonDefaultProperties: true $ref: /ref/property-groups/machine - Con las entradas anidadas, agregue la propiedad
populateRequiredForNestedProperties:inputs: cluster: type: integer title: Cluster default: 1 minimum: 1 maximum: 4 level: type: object properties: cpu: type: integer populateRequiredForNestedProperties: true title: CPU minimum: 1 maximum: 4 memory: type: integer populateRequiredForNestedProperties: true title: Memory minimum: 2048 maximum: 4096Tenga en cuenta que también puede aplicar esta opción cuando se anida una referencia de grupo de propiedades formales:
level: type: object properties: cpu: type: integer populateRequiredForNestedProperties: true title: CPU minimum: 1 maximum: 4 memory: type: integer populateRequiredForNestedProperties: true title: Memory minimum: 2048 maximum: 4096 pgrequester: type: object populateRequiredForNestedProperties: true $ref: /ref/property-groups/requesterDetails
Entrada opcional: para forzar que la entrada siga siendo opcional, establezca un valor predeterminado vacío con marcas de verificación:
owner: type: string minLength: 0 maxLength: 30 title: Owner Name description: Account Owner default: ''
Envió de entradas a VMware Aria Automation Orchestrator
Para proporcionar una entrada de plantilla de nube a una acción de VMware Aria Automation Orchestrator, realice los siguientes pasos. Con las acciones de VMware Aria Automation Orchestrator, el formulario Entradas es más fácil de usar que escribir directamente en el código de plantilla de nube.
- En la instancia de VMware Aria Automation Orchestrator integrada con VMware Aria Automation, compruebe que existe la acción que desea.
- En la página de diseño de plantilla de Automation Assembler vaya a la pestaña Entradas y haga clic para agregar una nueva entrada.
- Seleccione un tipo y seleccione Origen externo.
- Junto a Acción, haga clic en el botón Seleccionar.
- Utilice el campo de búsqueda Acción para localizar y seleccionar la acción de VMware Aria Automation Orchestrator.
- Introduzca o seleccione los parámetros de acción.
Después de guardar y crear la entrada, aparece en el código de plantilla de nube como una entrada $dynamicDefault. Por ejemplo:
inputs:
backupnetwork:
type: string
$dynamicDefault: /data/vro-actions/com.insanpaolo/getBackupNetworkVLAN?network={{abcdef123456}}&tenant={{abcdef123456}}
Lista de propiedades de entrada
| Propiedad | Descripción |
|---|---|
| const | Se usa con oneOf. El valor real asociado al título descriptivo. |
| default | Valor rellenado previamente para la entrada. El valor predeterminado debe ser del tipo correcto. No introduzca una palabra como valor predeterminado para un entero. |
| description | Texto de ayuda del usuario para la entrada. |
| encrypted | Establece si se cifrará la entrada que introduce el usuario, como true o false. Las contraseñas suelen estar cifradas. También puede crear propiedades cifradas que se puedan reutilizar en varias plantillas de nube. Consulte Propiedades secretas de Automation Assembler. |
| enum | Menú desplegable de valores permitidos. Utilice el siguiente ejemplo como guía de formato.
enum:
- value 1
- value 2 |
| format | Establece el formato esperado de la entrada. Por ejemplo, (25/04/19) admite fecha y hora. Permite utilizar el selector de fecha en los formularios personalizados de Automation Service Broker. |
| items | Declara elementos dentro de una matriz. Admite número, entero, cadena, booleano u objeto. |
| maxItems | Cantidad máxima de elementos que pueden seleccionarse dentro de una matriz. |
| maxLength | Número máximo de caracteres permitido para una cadena. Por ejemplo, introduzca |
| maximum | Valor máximo permitido para un número o un entero. |
| minItems | Cantidad mínima de elementos que pueden seleccionarse dentro de una matriz. |
| minLength | Número mínimo de caracteres permitido para una cadena. |
| minimum | Valor mínimo permitido para un número o un entero. |
| oneOf | Permite que el formulario de entrada del usuario muestre un nombre descriptivo (title) para un valor menos descriptivo (const). Si agrega la propiedad predeterminado que se muestra arriba en esta tabla, establezca el valor predeterminado en un valor const, no en uno title. Puede utilizarse con los tipos cadena, entero y número. |
| pattern | Caracteres permitidos para entradas de cadena, en la sintaxis de expresión regular. Por ejemplo, |
| properties | Declara el bloque de propiedades key:value de los objetos. |
| readOnly | Se utiliza únicamente para proporcionar una etiqueta de formulario. |
| title | Se usa con oneOf. El nombre descriptivo de un valor de const. La propiedad title aparece en el formulario de entrada del usuario en el momento de la implementación. |
| type | Tipo de datos: número, entero, cadena, booleano u objeto.
Importante:
Un tipo booleano agrega una casilla de verificación en blanco al formulario de solicitud. Si deja el cuadro intacto, no hará que la entrada sea False. Para establecer la entrada en False, los usuarios deben activar y desactivar la casilla. |
| writeOnly | Utiliza asteriscos para ocultar las pulsaciones de teclas en el formulario. No se puede utilizar con enum. Aparece como un campo de contraseña en los formularios personalizados de Automation Service Broker. |
Ejemplos adicionales
Cadena con enumeración
image:
type: string
title: Operating System
description: The operating system version to use.
enum:
- ubuntu 16.04
- ubuntu 18.04
default: ubuntu 16.04
shell:
type: string
title: Default shell
Description: The default shell that will be configured for the created user.
enum:
- /bin/bash
- /bin/sh
Entero con valor mínimo y máximo
count:
type: integer
title: Machine Count
description: The number of machines that you want to deploy.
maximum: 5
minimum: 1
default: 1
Matriz de objetos
tags:
type: array
title: Tags
description: Tags that you want applied to the machines.
items:
type: object
properties:
key:
type: string
title: Key
value:
type: string
title: Value
Cadena con nombres descriptivos
platform:
type: string
oneOf:
- title: AWS
const: platform:aws
- title: Azure
const: platform:azure
- title: vSphere
const: platform:vsphere
default: platform:aws
Cadena con validación de patrones
username:
type: string
title: Username
description: The name for the user that will be created when the machine is provisioned.
pattern: ^[a-zA-Z]+$
Cadena como contraseña
password:
type: string
title: Password
description: The initial password that will be required to logon to the machine. Configured to reset on first login.
encrypted: true
writeOnly: true
Cadena como área de texto
ssh_public_key:
type: string
title: SSH public key
maxLength: 256
Booleano
public_ip:
type: boolean
title: Assign public IP address
description: Choose whether your machine should be internet facing.
default: false
Selector de calendario de fecha y hora
leaseDate:
type: string
title: Lease Date
format: date-time