Como desenvolvedor de design de modelo de nuvem, você usa parâmetros de entrada para que os usuários possam fazer seleções personalizadas no momento da solicitação.
Como as entradas funcionam
Quando os usuários fornecem entradas, não é mais necessário salvar várias cópias dos modelos que são apenas um pouco diferentes. Além disso, as entradas podem preparar um modelo para operações de dia 2. Consulte Como usar entradas de modelo de nuvem para atualizações de dia 2 do vRealize Automation.
As seguintes entradas mostram como criar um modelo de nuvem para um servidor de banco de dados MySQL, em que os usuários podem implantar esse modelo em diferentes ambientes de recursos de nuvem e aplicar diferentes recursos e credenciais todas as vezes.
Adicionando parâmetros de entrada
Adicione uma seção inputs
ao seu código de modelo, onde são definidos valores selecionáveis.
No exemplo a seguir, o tamanho da máquina, o sistema operacional e o número de servidores agrupados em cluster são selecionáveis.
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 você não se sentir à vontade ao editar o código, poderá clicar na guia Entradas do editor de código e inserir as configurações lá. O exemplo a seguir mostra algumas entradas para o banco de dados MySQL mencionado anteriormente.
Fazendo referência a parâmetros de entrada
Em seguida, na seção resources
, referencie um parâmetro de entrada usando a sintaxe ${input.propriedade-nome}
.
Se um nome de propriedade incluir um espaço, delimite-o com colchetes e aspas duplas em vez de usar a notação de ponto: ${input["nome da propriedade"]}
input
, exceto para indicar um 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 aninhada
Se você quiser organizar ou categorizar entradas, uma entrada aninhada será permitida. No exemplo a seguir, a CPU e a memória estão juntas sob um título principal de nível.
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
Na seção recursos, para fazer referência à entrada aninhada, inclua o principal no caminho.
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 versus necessária
"Para todos os tipos, exceto Boolean, a entrada do usuário é opcional por padrão." Para exigir entrada, siga um destes procedimentos:
- Defina um valor padrão.
- Quando você não tiver entradas aninhadas, adicione a propriedade
populateRequiredOnNonDefaultProperties
:inputs: cluster: type: integer populateRequiredOnNonDefaultProperties: true title: Cluster minimum: 1 maximum: 4
Observe que você também pode aplicar essa configuração ao fazer referência a um grupo de propriedades formais:
inputs: pgmachine: type: object populateRequiredOnNonDefaultProperties: true $ref: /ref/property-groups/machine
- Com entradas aninhadas, adicione a propriedade
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
Observe que você também pode aplicar essa configuração quando uma referência ao grupo de propriedades formais está aninhada:
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 forçar a entrada a permanecer opcional, defina um valor padrão vazio usando marcas de tique:
owner: type: string minLength: 0 maxLength: 30 title: Owner Name description: Account Owner default: ''
Enviando entradas para o vRealize Orchestrator
Para fornecer uma entrada de modelo de nuvem a uma ação do vRealize Orchestrator, siga estas etapas. Com as ações do vRealize Orchestrator, o formulário Entradas é mais fácil de usar do que digitar diretamente no código do modelo de nuvem.
- Na instância do vRealize Orchestrator integrada ao vRealize Automation, verifique se a ação desejada existe.
- Na página de design de modelo de nuvem no Cloud Assembly, acesse a guia Entradas e clique para adicionar uma nova entrada.
- Selecione um tipo e selecione Origem externa.
- Ao lado de Ação, clique no botão Selecionar.
- Use o campo Pesquisa de ação para localizar e selecionar a ação do vRealize Orchestrator.
- Insira ou selecione qualquer parâmetro de ação .
Depois de salvar e criar a entrada, ela aparecerá no código do modelo de nuvem como uma entrada $dynamicDefault
. Por exemplo:
inputs: backupnetwork: type: string $dynamicDefault: /data/vro-actions/com.insanpaolo/getBackupNetworkVLAN?network={{abcdef123456}}&tenant={{abcdef123456}}
Lista de propriedades de entrada
Propriedade | Descrição |
---|---|
const | Usado com oneOf. O valor real associado ao título amigável. |
default | Valor pré-preenchido para a entrada. O padrão deve ser do tipo correto. Não digite uma palavra como padrão para um número inteiro. |
description | Texto de ajuda do usuário para a entrada. |
encrypted | Se você deseja criptografar a entrada que o usuário digita, verdadeiro ou falso. As senhas normalmente são criptografadas. Também é possível criar propriedades criptografadas que são reutilizáveis em vários modelos de nuvem. Consulte Propriedades secretas do Cloud Assembly. |
enum | Um menu suspenso de valores permitidos. Use o exemplo a seguir como um guia de formatação. enum: - value 1 - value 2 |
format | Define o formato esperado para a entrada. Por exemplo, (25/04/19) suporta data e hora. Permite o uso do selecionador de data em formulários personalizados do Service Broker. |
itens | Declara itens em uma matriz. Oferece suporte a número, inteiro, cadeia de caracteres, boolean ou objeto. |
maxItems | Número máximo de itens selecionáveis em uma matriz. |
maxLength | Número máximo de caracteres permitido para uma cadeia de caracteres. Por exemplo, para limitar um campo a 25 caracteres, digite |
maximum | Maior valor permitido para um número ou inteiro. |
minItems | Número mínimo de itens selecionáveis em uma matriz. |
minLength | Número mínimo de caracteres permitido para uma cadeia de caracteres. |
minimum | Menor valor permitido para um número ou inteiro. |
oneOf | Permite que o formulário de entrada do usuário exiba um nome amigável (título) para um valor menos amigável (const). Se definir um valor padrão, defina const, não o título. Válido para uso com tipos de cadeia de caracteres, inteiro e número. |
pattern | Caracteres permitidos para entradas de cadeia de caracteres, na sintaxe de expressão regular. Por exemplo, |
properties | Declara a chave:bloco de propriedades de valor para objetos |
readOnly | Usado para fornecer apenas um rótulo de formulário. |
title | Usado com oneOf. O nome amigável para um valor const. O título aparece no formulário de entrada do usuário no momento da implantação. |
type | Tipo de dados de número, inteiro, cadeia de caracteres, boolean ou objeto.
Importante:
Um tipo booleano adiciona uma caixa de seleção em branco ao formulário de solicitação. Deixar a caixa desmarcada não torna a entrada Falso. Para definir a entrada como Falso, os usuários devem marcar e limpar a caixa. |
writeOnly | Oculta os pressionamentos de teclas atrás de asteriscos no formulário. Não pode ser usado com enum. Aparece como um campo de senha em formulários personalizados do Service Broker. |
Exemplos adicionais
Cadeia de caracteres com enumeração
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
Inteiro com mínimo e 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
Cadeia de caracteres com nomes amigáveis
platform: type: string oneOf: - title: AWS const: platform:aws - title: Azure const: platform:azure - title: vSphere const: platform:vsphere default: platform:aws
Cadeia de caracteres com validação de padrão
username: type: string title: Username description: The name for the user that will be created when the machine is provisioned. pattern: ^[a-zA-Z]+$
Cadeia de caracteres como senha
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
Cadeia de caracteres como área de texto
ssh_public_key: type: string title: SSH public key maxLength: 256
Boolean
public_ip: type: boolean title: Assign public IP address description: Choose whether your machine should be internet facing. default: false
Seletor de calendário de data e hora
leaseDate: type: string title: Lease Date format: date-time