Durante o desenvolvimento iterativo dos seus modelos de nuvem ou quando tiver um modelo final, você pode disponibilizar os modelos para os consumidores no catálogo de autoatendimento do Service Broker. Para melhorar ainda mais a experiência do usuário, é possível criar um formulário de solicitação personalizado. Esse formulário personalizado é mais eficiente do que as opções de entrada de modelo simples.

O que fazer primeiro

  • Verifique se você tem a infraestrutura compatível com o seu modelo. Se não tiver, comece com Tutorial: configurando e testando a infraestrutura e as implantações do vSphere no Cloud Assembly e continue com os outros tutoriais.
  • Verifique se você marcou alguns pools de recursos como env:dev e env:prod. Para obter mais informações, consulte Tutorial: Usando tags no Cloud Assembly para gerenciar recursos do vSphere.
  • Certifique-se de ter um modelo de nuvem implantável, semelhante ao modelo de nuvem abaixo. Este tutorial começa com o modelo a seguir.
    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

Etapa 1: Adicionar entradas ao modelo de nuvem

Além da entrada do tipo de SO existente, este procedimento atualiza a entrada de posicionamento e adiciona uma entrada de tamanho. Ao personalizar o formulário de solicitação no Service Broker, estes são os três campos no formulário de solicitação que são personalizados.

  1. Em Cloud Assembly, selecione Design > Modelo de Nuvem e crie ou abra o modelo fornecido acima.

    O modelo de amostra é usado para explicar as diferentes opções e inclui valores de amostra. Adapte-o ao seu ambiente.

  2. Adicione a variável de tamanho e defina os tamanhos na seção Entradas.
    1. Na seção Cloud_vSphere_Machine_1, adicione uma variável à propriedade flavor.
       flavor: '${input.size}'
    2. Na seção Entradas, adicione um tamanho de nome para entrada pelo usuário, para que o usuário possa selecionar o tamanho da implantação. Isso às vezes é conhecido como o tamanho de camiseta que você definiu para as zonas de nuvem.
       size:
          type: string
          title: Deployment size
          description: Select the the deployment t-shirt size.
          enum:
            - small
            - medium
            - large
  3. Atualize as entradas de posicionamento com um termo descritivo no lugar das strings de tag.

    Essas marcas de restrição serão correspondidas com as tags de recurso que você adicionou em Tutorial: Usando tags no Cloud Assembly para gerenciar recursos do vSphere.

    1. Na seção Entradas, adicione uma entrada de usuário chamada posicionamento para que o usuário possa selecionar Desenvolvimento ou Produção como o posicionamento da implantação.

      Este exemplo usa o atributo oneOf, que permite apresentar um rótulo de linguagem natural e, ao mesmo tempo, ainda envia as cadeias de caracteres exigidas pelo processo de implantação. Por exemplo, as tags env:dev e 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. Revise o YAML completo para garantir que ele seja semelhante ao exemplo a seguir.
    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. Clique em Implantar e verifique se a segunda página da solicitação é semelhante ao exemplo a seguir. Em seguida, você poderá verificar se a implantação está no desenvolvimento selecionado do pool de recursos de produção após a implantação.

    Página dois do formulário de solicitação de implantação, mostrando as entradas para tipo de sistema operacional, posicionamento da implantação e tamanho da implantação.

Etapa 2: Criar uma versão e liberar o modelo de nuvem

Quando você tiver um modelo implantável, poderá disponibilizá-lo no catálogo do Service Broker para outros usuários implantarem. Para tornar o modelo de nuvem detectável de forma que seja possível adicioná-lo ao catálogo, você deve liberá-lo. Neste procedimento, iremos criar uma versão, capturar um snapshot do modelo e, em seguida, liberar o modelo.

  1. Selecione Design > Modelo de Nuvem e abra o modelo na tela de design.
  2. Clique em Versão e insira uma descrição.

    Caixa de diálogo de criação de versão com um número de versão, uma descrição e a caixa de seleção Liberar marcada.
  3. Marque a caixa de seleção Liberar e clique em Criar.

    A liberação do modelo de nuvem não o adiciona automaticamente ao Service Broker. Liberá-lo o torna detectável para que você possa adicioná-lo ao catálogo.

Etapa 3: Adicionar o modelo de nuvem ao catálogo do Service Broker

Você pode usar o Service Broker para fornecer modelos de nuvem para outros consumidores na sua organização, onde eles não precisam ter conhecimento de como criar um modelo. O catálogo permite que eles implantem o modelo.

Para poder adicionar o modelo como um item de catálogo, você deve importá-lo para o Service Broker. Apenas é possível importar modelos de nuvem liberados.

  1. Para abrir o Service Broker a partir do Cloud Assembly, clique no menu de aplicativos no canto superior direito.
    O menu de aplicativos no canto superior direito da página está aberto e o Service Broker está realçado.
  2. Clique em Service Broker.
  3. Importe o modelo de nuvem
    1. No Service Broker, selecione Conteúdo e Políticas > Fontes de Conteúdo.
    2. Clique em Novo e depois selecione VMware Cloud Templates.
    3. Insira um Nome.

      Para este tutorial, insira Cloud Assembly DevProject.

    4. Para Projeto, selecione o Projeto de Desenvolvimento que você criou no Cloud Assembly.
    5. Clique em Validar.

      O sistema deve indicar que foi encontrado pelo menos um item.

    6. Quando validado, clique em Criar e Importar.

      Cloud Assembly DevProject é adicionado à lista como uma fonte de conteúdo.

  4. Disponibilize o modelo de nuvem no catálogo.
    1. Selecione Conteúdo e Políticas > Políticas > Definições.
    2. Clique em Nova Política e depois em Política de Compartilhamento de Conteúdo.
    3. Insira um Nome.

      Para este tutorial, digite Política de DevProject.

    4. Na lista Escopo, selecione Projeto de Desenvolvimento.
    5. Na seção Conteúdo compartilhado, clique em Adicionar Itens.
    6. Na caixa de diálogo Compartilhar Itens, selecione Cloud Assembly DevProject e clique em Salvar.
    7. Na seção Usuários, selecione os usuários e os grupos do projeto cujo item você deseja no catálogo.
    8. Clique em Criar.
  5. Para verificar se o Modelo de Desenvolvimento foi adicionado ao catálogo, clique em Catálogo.
  6. Clique em Solicitar no cartão Modelo de Desenvolvimento.

    Perceba que as entradas vistas no modelo de nuvem são fornecidas aqui. O próximo passo é personalizar o formulário de solicitação.


    O formulário de solicitação de catálogo para o item de catálogo Modelo de Implantação. Isso inclui opções de nome da implantação, sistema operacional, posicionamento e tamanho da implantação.

Etapa 4: Criar um formulário personalizado para o modelo

O objetivo desse formulário personalizado é fornecer um formulário no qual o usuário seleciona o sistema operacional e o posicionamento com base nas tags env:dev ou env:prod. Em seguida, a opção env:dev permite que o usuário selecione pequeno ou médio (grande não é uma opção). No entanto, se o usuário selecionar env:prod, não haverá uma opção para selecionar grande. O tamanho ficará oculto para o usuário, mas estará incluído na solicitação.

  1. Para criar um formulário personalizado no Service Broker, selecione Conteúdo e Políticas > Conteúdo.
  2. Clique nas elipses verticais à esquerda da entrada Modelo de Desenvolvimento e clique em Personalizar formulário.
  3. Personalize a opção de entrada.
    1. Clique nos campos da tela e configure as Propriedades conforme especificado na tabela a seguir.
      Nome do campo da tela Aparência Valores Restrições
      Sistema operacional

      Rótulo e tipo

      • Rótulo = Sistema operacional

      Opções do valor

      • Opções de valor = Constante
      • Origem do valor = centos|CentOS,ubuntu|Ubuntu

      Este exemplo usa as opções de valor para personalizar todos os nomes de sistema operacional em minúsculas com o nome do SO preferencial.

      Selecionar Posicionamento da Implantação

      Opções do valor

      • Opções de valor = Constante
      • Origem do valor = env:dev|Development,env:prod|Production
      Tamanho da Implantação

      Visibilidade

      • Origem do valor = Valor condicional
      • Definir valor = Sim se Selecionar Posicionamento da Implementação for igual a env:dev

      Valor padrão

      • Origem do valor = Valor condicional
      • Definir valor = Grande se Selecionar Implantação for igual a env:prod

      Opções do valor

      • Opções de valor = Constante
      • Origem do valor = small|Small,medium|Medium

      Observe que a origem do valor não inclui Grande. Grande é excluído porque só está disponível para Produção e é o valor necessário. O valor Grande está incluído na solicitação de implantação sem uma ação iniciada pelo usuário.

    2. Para ativar o formulário no catálogo, clique em Ativar.
    3. Clique em Salvar.
  4. Para garantir os resultados corretos enviando pelo menos um formulário Desenvolvimento Pequeno e uma solicitação de Produção e teste o formulário no catálogo.

    Use os exemplos a seguir para verificar os resultados.

    1. Teste o formulário de solicitação Desenvolvimento Pequeno fornecendo um nome, Teste pequeno neste exemplo, e selecionando CentOS, Desenvolvimento e Pequeno para as opções.
      Formulário de solicitação de catálogo com Teste pequeno como o nome da implantação e as opções Desenvolvimento e Pequeno selecionadas.
    2. Para verificar a implantação Desenvolvimento Pequeno, selecione Recursos > Implantações e clique na implantação Teste pequeno.
    3. Na guia Topologia, clique na guia Cloud_vSphere_Machine e localize a seção Propriedades Personalizadas no painel direito.

      Alguns dos valores a revisar incluem cpuCount = 2 e flavor = small.


      Página de topologia de implantação com Cloud_vSphere_Machine realçado na tela e cpuCount = 2 e flavour = small realçados no painel direito.
    4. Teste o formulário de solicitação de Produção inserindo um nome, Teste grande neste exemplo, e selecione CentOS e Produção para as opções.

      Lembre-se de que você configurou o formulário para não exibir nem exigir que o usuário selecione o tamanho.


      Formulário de solicitação de catálogo com Teste grande como o nome da implantação e a opção Produção selecionada.
    5. Para verificar a implantação de Produção, selecione Recursos > Implantações e clique na implantação Teste grande.
    6. Na guia Topologia, clique na guia Cloud_vSphere_Machine e localize a seção Propriedades Personalizadas no painel direito.

      Alguns dos valores a serem revisados incluem cpuCount = 8 e flavor = large.


      Página de topologia de implantação com Cloud_vSphere_Machine realçado na tela e cpuCount=8 e flavor=large realçados no painel direito.

Etapa 5: Controlar as versões do modelo de nuvem no catálogo

Na maioria dos casos, você deseja disponibilizar apenas os modelos de nuvem mais recentes no catálogo do Service Broker. O procedimento a seguir oferece suporte ao desenvolvimento iterativo, no qual você libera uma versão do modelo e a adiciona ao catálogo. Porém, agora você aprimorou o modelo e deseja substituir a versão atual pela mais recente.

Na etapa 2, você criou uma versão de modelo e a liberou e, portanto, está familiarizado com o processo. Na etapa 3, você o adicionou ao catálogo. Este procedimento vincula as duas etapas anteriores à medida em que você realiza o desenvolvimento iterativo e atualiza o catálogo com a versão mais recente.

Você tem a opção de disponibilizar várias versões no catálogo.

  1. No Cloud Assembly, crie uma versão do modelo que você deseja disponibilizar no catálogo.
    1. Selecione Design > Modelo de Nuvem e abra o modelo na tela de design.
    2. Clique em Histórico de Versões.
    3. Localize a versão que você deseja adicionar ao catálogo e clique em Versão.
    4. Insira uma Descrição, marque a caixa de seleção Liberação e clique em Criar.

      Nesse ponto, você tem a opção de manter a versão antiga no catálogo. Se quiser várias versões, ignore a próxima etapa de cancelamento do liberação de uma versão.

    5. Para disponibilizar apenas uma versão do modelo no catálogo, reveja a lista de histórico de versões e clique em Cancelar liberação em cada versão que você não deseja no catálogo.
  2. Para atualizar o catálogo do Service Broker com a versão mais recente e substituir qualquer versão antiga, você deve coletar a nova versão.
    1. No Service Broker, selecione Conteúdo e Políticas > Fontes de Conteúdo.
    2. Clique na fonte de conteúdo DevProject do Cloud Assembly usada neste tutorial.
    3. Clique em Validar.

      Você deve ver uma mensagem de que um item foi encontrado.

    4. Clique em Salvar e Importar.
  3. Verifique se o catálogo exibe as versões necessárias ou nenhuma versão.
    1. No Service Broker, clique em Catálogo.
    2. Localize o item do catálogo e clique em Solicitação.
    3. No topo do formulário de solicitação, clique em Versão e verifique a(s) versão(ões).

    A captura de tela a seguir mostra 8.


    Captura de tela do novo formulário de solicitação com uma única versão disponível.