Il progettista di modelli cloud usa i parametri di input in modo che gli utenti possano effettuare selezioni personalizzate al momento della richiesta.
Funzionamento degli input
Quando gli utenti forniscono input, non è più necessario salvare più copie del modello che sono solo leggermente diverse. Inoltre, gli input possono preparare un modello per le operazioni giorno 2. Vedere Come utilizzare gli input del modello cloud per gli aggiornamenti giorno 2 di vRealize Automation.
I seguenti input illustrano come creare un modello cloud per un server di database MySQL in cui gli utenti possono distribuire tale modello in ambienti di risorse cloud diversi e applicare ogni volta capacità e credenziali diverse.
Aggiunta di parametri di input
Aggiungere una sezione inputs
al codice del modello in cui impostare valori selezionabili.
Nell'esempio seguente è possibile selezionare le dimensioni della macchina, il sistema operativo e il numero di server in cluster.
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)
Se non si è sicuri di come modificare il codice, è possibile fare clic sulla scheda Input dell'editor di codice e immettere le impostazioni in tale scheda. L'esempio seguente illustra alcuni input per il database MySQL menzionato in precedenza.
Riferimenti ai parametri di input
Successivamente, nella sezione resources
, fare riferimento a un parametro di input utilizzando la sintassi ${input.property-name}
.
Se un nome di proprietà include uno spazio, delimitarlo con parentesi quadre e virgolette doppie anziché utilizzare la notazione dei punti: ${input["property name"]}
input
se non per indicare un parametro di input.
resources: WebTier: type: Cloud.Machine properties: name: wordpress flavor: '${input.wp-size}' image: '${input.wp-image}' count: '${input.wp-count}'
Input nidificato
Se si desidera organizzare o classificare gli input, l'input nidificato è supportato. Nell'esempio seguente, la CPU e la memoria sono insieme sotto l'intestazione principale di livello.
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
Nella sezione risorse, per fare riferimento all'input nidificato, includere l'elemento principale nel percorso.
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}
Input facoltativo e obbligatorio
Per tutti i tipi ad eccezione di Booleano, l'immissione dell'utente è facoltativa per impostazione predefinita. Per richiedere l'input, eseguire una delle seguenti operazioni:
- Impostare un valore predefinito.
- Quando non sono presenti input nidificati, aggiungere la proprietà
populateRequiredOnNonDefaultProperties
:inputs: cluster: type: integer populateRequiredOnNonDefaultProperties: true title: Cluster minimum: 1 maximum: 4
Si noti che è possibile applicare questa impostazione anche quando si fa riferimento a un gruppo di proprietà formale:
inputs: pgmachine: type: object populateRequiredOnNonDefaultProperties: true $ref: /ref/property-groups/machine
- Con gli input nidificati, aggiungere la proprietà
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: 4096
Si noti che è possibile applicare questa impostazione anche quando un riferimento a un gruppo di proprietà formale è nidificato:
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
Input facoltativo: per forzare l'input a rimanere facoltativo, impostare un valore predefinito vuoto utilizzando i segni di spunta:
owner: type: string minLength: 0 maxLength: 30 title: Owner Name description: Account Owner default: ''
Invio di input a vRealize Orchestrator
Per fornire un input di modello cloud a un'azione di vRealize Orchestrator, eseguire i passaggi seguenti. Con le azioni di vRealize Orchestrator, l'utilizzo del modulo Input è più semplice rispetto alla digitazione diretta nel codice del modello cloud.
- Nell'istanza di vRealize Orchestrator integrata con vRealize Automation, verificare che esista l'azione desiderata.
- Nella pagina di progettazione del modello cloud in Cloud Assembly, passare alla scheda Input e fare clic per aggiungere un nuovo input.
- Selezionare un tipo e quindi selezionare Origine esterna.
- Accanto ad Azione, fare clic sul pulsante Seleziona.
- Utilizzare il campo di ricerca Azione per individuare e selezionare l'azione di vRealize Orchestrator.
- Immettere o selezionare qualsiasi parametro di azione.
Dopo aver salvato e creato l'input, viene visualizzato nel codice del modello cloud come input $dynamicDefault
. Ad esempio:
inputs: backupnetwork: type: string $dynamicDefault: /data/vro-actions/com.insanpaolo/getBackupNetworkVLAN?network={{abcdef123456}}&tenant={{abcdef123456}}
Elenco delle proprietà di input
Proprietà | Descrizione |
---|---|
const | Utilizzata con oneOf. Valore reale associato al titolo descrittivo. |
default | Valore precompilato per l'input. Il valore predefinito deve essere di tipo corretto. Non immettere una parola come valore predefinito per un numero intero. |
description | Testo della guida dell'utente per l'input. |
encrypted | Indica se crittografare l'input inserito dall'utente. Può essere true o false. Le password sono in genere crittografate. È inoltre possibile creare proprietà crittografate riutilizzabili in più modelli cloud. Vedere Proprietà di Cloud Assembly segrete. |
enum | Menu a discesa di valori consentiti. Utilizzare l'esempio seguente come guida per il formato. enum: - value 1 - value 2 |
format | Imposta il formato previsto per l'input. Ad esempio, (25/04/19) supporta data-ora. Consente di utilizzare il selettore della data nei moduli personalizzati di Service Broker. |
items | Dichiara gli elementi all'interno di una matrice. Supporta numeri, numeri interi, stringhe, valori booleani o oggetti. |
maxItems | Numero massimo di elementi selezionabili in una matrice. |
maxLength | Numero massimo di caratteri consentiti per una stringa. Ad esempio, per fare in modo che un campo non contenga più di 25 caratteri, immettere |
maximum | Valore massimo consentito per un numero o un numero intero. |
minItems | Numero minimo di elementi selezionabili in una matrice. |
minLength | Numero minimo di caratteri consentiti per una stringa. |
minimum | Valore minimo consentito per un numero o un numero intero. |
oneOf | Consente al modulo di input dell'utente di visualizzare un nome descrittivo (title) per un valore meno descrittivo (const). Se si imposta un valore predefinito, specificare const, non title. Valida per l'uso con i tipi stringa, numero intero e numero. |
pattern | Caratteri consentiti per gli input stringa nella sintassi delle espressioni regolari. Ad esempio |
properties | Dichiara il blocco delle proprietà key:value per gli oggetti. |
readOnly | Utilizzata per fornire solo un'etichetta del modulo. |
title | Utilizzata con oneOf. Nome descrittivo per un valore const. Il titolo viene visualizzato nel modulo di input dell'utente al momento della distribuzione. |
type | Tipo di dati numero, numero intero, stringa, booleano o oggetto.
Importante:
Un tipo booleano aggiunge una casella di controllo vuota al modulo di richiesta Se si lascia invariata la casella, l'input non viene impostato su False. Per impostare l'input su False, gli utenti devono selezionare e deselezionare la casella. |
writeOnly | Sostituisce le pressioni dei tasti con asterischi nel modulo. Non può essere utilizzata con enum. Viene visualizzata come campo della password nei moduli personalizzati di Service Broker. |
Altri esempi
Stringa con enumerazione
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
Numero intero con minimo e massimo
count: type: integer title: Machine Count description: The number of machines that you want to deploy. maximum: 5 minimum: 1 default: 1
Matrice di oggetti
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
Stringa con nomi descrittivi
platform: type: string oneOf: - title: AWS const: platform:aws - title: Azure const: platform:azure - title: vSphere const: platform:vsphere default: platform:aws
Stringa con convalida del pattern
username: type: string title: Username description: The name for the user that will be created when the machine is provisioned. pattern: ^[a-zA-Z]+$
Stringa come password
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
Stringa come area di testo
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
Selettore calendario data e ora
leaseDate: type: string title: Lease Date format: date-time