Tutorial de provisionamento de VM do Azure

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 13 min. de leitura
  • Este exemplo orienta você nos componentes de Cloud Provisioning and Governance que funcionam durante o provisionamento de uma máquina virtual em um datacenter do Azure. Os tópicos abordados incluem blueprints, blocos de recursos, API de nuvem (CAPI) e MID Server inclusões de script.

    Antes de Iniciar

    Função necessária: admin

    Por Que e Quando Desempenhar Esta Tarefa

    Este passo a passo começa com uma VM Linux que um usuário já provisionou no Azure. Em seguida, ele orienta você no plano gráfico com a VM, os blocos de recursos e as chamadas de CAPI especificadas a partir dos blocos de recursos. Por fim, o passo a passo mostra como uma inclusão de script MID Server eventualmente, por meio de várias chamadas de CAPI, faz as chamadas REST reais para a API do Azure.

    Este exemplo usa blocos de recursos padrão e inclusões de script que estão disponíveis em sua instância. Portanto, embora você possa não ter uma VM provisionada em sua instância, você ainda pode seguir estas etapas e exibir os componentes usados neste exemplo para entender como os componentes funcionam.

    Para obter um exemplo de uma VM na AWS, consulte Tutorial de provisionamento de VM da AWS.

    Nota:
    Os termos máquina virtual, VMe servidor virtual são usados de forma intercambiável neste exemplo.

    Procedimento

    1. Observe uma VM provisionada no Portal de usuário da nuvem e concentre-se em alguns dos detalhes sobre a VM:
      1. Na interface da instância sistema base, abra o Portal de usuário da nuvem (Portal de usuário da nuvem).
      2. No Portal de usuário da nuvem, exiba uma VM provisionada em uma pilha, como esta VM, clicando em Pilhase, em seguida, clicando no nome da pilha.

        Neste exemplo, a pilha é chamada de MyAzureVM.

      3. Em Recursos, clique na VM na pilha.

        Exemplo de servidor virtual

      4. Exiba as propriedades da VM e observe que ela está em um datacenter do Azure na região leste.

        Detalhes da VM

    2. Observe o plano gráfico no qual a VM está baseada:
      1. Navegar até Design > Planos gráficose abra um plano gráfico com um servidor virtual no datacenter do Azure. A guia Modelo de implantação aparece por padrão, mostrando os vários componentes do plano gráfico.

        Este plano gráfico de exemplo tem três componentes: o contêiner, o servidor virtual, que é a VM real provisionada e o datacenter do Azure.

        Minha VM do Azure

      2. Clique na guia Operações na parte inferior e clique em Provisionar.

        Operação de provisionamento

        A operação de provisionamento é a operação que o sistema acionou quando criou a VM. Outras operações padrão estão disponíveis, mas este exemplo se concentra na operação de provisionamento.

      3. Clique no bloco Provisionar do Recurso Contêiner de plano gráfico.

        Meu contêiner de plano gráfico da VM do Azure

      4. À direita, observe que um dos parâmetros na lista de Entradas é Local.
        Este parâmetro contém o valor eastus (leste dos EUA), que é onde a VM reside no datacenter.

        O parâmetro Localização

        As entradas podem ser especificadas no contêiner, como neste exemplo, ou em qualquer outro bloco de recursos. Por padrão, o parâmetro Location já está especificado para você no bloco de recursos do Contêiner de plano gráfico, para que você possa usá-lo em todos os planos gráficos como este. Se você alternar o plano gráfico para Rascunho, poderá adicionar mais parâmetros ao bloco de recursos do Contêiner de plano gráfico. Não é possível adicionar parâmetros ao bloco de recursos do servidor virtual. Para esta explicação passo a passo, nenhum parâmetro adicional será necessário.

    3. Exiba os blocos de recursos do servidor virtual e do datacenter usados neste plano gráfico:
      1. Em Portal de Administração de Nuvem, navegue até Design > Blocos de recursos.
      2. Pesquise e abra o bloco de recursos do Servidor virtual, que é fornecido por padrão com Cloud Provisioning and Governance.

        O bloco de recursos do servidor virtual padrão

      3. No formulário Bloco de recursos, clique na lista relacionada Recurso de host para exibir a lista de blocos de recursos de host compatíveis.
      4. Observe a interface do host e o recurso do host que já estão especificados:

        Bloco de recursos do Azure

        • O campo Interface do host especifica a interface que deve corresponder à interface do convidado no bloco de recursos que hospeda esta máquina virtual. Nesse caso, a interface do host é a Interface de computação, que também é a interface de convidado no bloco de recursos do Datacenter do Azure. Por padrão, os blocos de recursos de datacenter fornecem várias interfaces de convidado que outros blocos de recursos, como armazenamento virtual, podem usar para se conectar ao datacenter.
        • A coluna HostResource na lista relacionada Recurso do Host já especifica o Datacenter do Azure, o que significa que o bloco de recursos do datacenter do Azure é um host válido para esta VM.
      5. Clique na guia Operações e na subguia Etapas.

        Selecionando a subguia Etapas

      6. Selecione Provisionar na lista Operação.

        A Operação de provisionamento

        Lembre-se de que a operação de provisionamento é a operação que o sistema usou para criar a VM. Outras operações padrão estão disponíveis, mas este exemplo se concentra na operação de provisionamento.

      7. Observe a etapa que aparece na lista e a descrição completa da etapa que aparece acima dos parâmetros de entrada:

        Etapa para provisionamento

        • Operação de recurso de host: indica que esta etapa chama uma operação no recurso de host (o datacenter do Azure neste exemplo).
        • Interface de computação é a interface de convidado no datacenter do Azure que esta etapa está usando.
        • ConnectAndCreateVirtualMachine é a operação no datacenter do Azure que esta etapa chama.
        Nota:
        Nesse caso, a etapa chama uma operação de outro bloco de recursos: o datacenter do Azure. As etapas também podem chamar o CAPI diretamente e, em seguida, o CAPI pode executar chamadas REST para a API do provedor de nuvem. Você pode ver isso ao observar o bloco de recursos do datacenter do Azure.
      8. Navegar de volta para Design > Blocos de recursos.
      9. Abra o bloco de recursos do Datacenter do Azure, que é o bloco de recursos do host ao qual o servidor virtual está conectado.
      10. Observe as interfaces de convidado compatíveis na lista relacionada de Interfaces de Convidado :

        Datacenter do Azure com API de computação

        Essas interfaces de convidado são as interfaces que o datacenter do Azure disponibiliza para outros blocos de recursos. A Interface de Computação é fornecida para que o bloco de recursos do Servidor Virtual, que especifica a Interface de Computação como sua interface de host, possa se conectar ao datacenter.

      11. Clique na guia Operações e na subguia Etapas.

        Selecionando a subguia Etapas

      12. Na lista Interface, selecione Interface de computação se ainda não estiver selecionada.

        Interface de computação

        Lembre-se de que essa interface é especificada no bloco de recursos do servidor virtual.

      13. Na lista Operação, pesquise e selecione ConnectAndCreateVirtualMachine.

        A operação ConnectAndCreateVM

        Lembre-se de que esta operação é especificada no bloco de recursos do servidor virtual.

      14. Observe a chamada de CAPI usada na única etapa da operação ConnectAndCreateVirtualMachine:

        A chamada de API CreateNode

        • API de nuvem: indica que esta etapa chama o CAPI, para que o CAPI possa executar uma chamada REST para o provedor de nuvem, que neste caso é o Azure.
        • Interface de computação especifica a interface CAPI que esta etapa chama.
        • CreateNode indica o método que é executado. Como o nome sugere, este método instrui o provedor de nuvem a criar a máquina virtual.
      15. Para abrir a configuração da etapa: com o bloco de recursos no estado Rascunho, aponte para a etapa realçada (azul) e clique no ícone Editar etapa que aparece.

        Editar etapa

      16. Observe a configuração da etapa e observe as configurações que se integram ao CAPI:

        Editar etapas

        Campo Descrição
        Tipo de Operação Invocar API de nuvem especifica que esta etapa deve chamar o CAPI por meio do provedor, interface e método especificados.
        Provedor de API (que na verdade é o produto) Microsoft.Compute é um produto (não o provedor real) que pertence ao provedor do Azure, conforme definido no CAPI.
        Interface de API A interface de computação é um produto que pertence ao provedor do Azure, conforme definido no CAPI.
        Método de API CreateNode é o método que chama o Azure para criar a VM.
        Nota:
        A definição de API de CAPI vincula o provedor (Azure), o produto (Microsoft.Compute), a interface (Compute Interface) e o método (CreateNode).
      17. Feche a janela.
      18. Com a etapa Compute Interface.CreateNode selecionada, clique na guia Processador de resposta e observe o script Create_Virtual_Server_Response_Processor.

        Guia Processador de resposta

        Este script é o processador de resposta que atualiza o CMDB em sua instância depois que a máquina virtual é criada.

      19. Veja uma explicação do script e o exemplo que faz parte do tópico em Criar um processador de resposta.
        Quando terminar de revisar o outro tópico, retorne a este tópico.
    4. Veja os componentes de CAPI que funcionam juntos para provisionar a VM:
      1. No Portal de administração de nuvem, navegue até Design > API em Nuvem.
      2. Clique na guia API e pesquise uma API de computação do Azureaberta.
      3. Veja como esta API de CAPI vincula uma interface e um produto:

        API de computação do Azure

        Campo Descrição
        Interface de API em Nuvem A interface de computação é a mesma interface que você pode ver especificada no bloco de recursos. A interface contém a definição de métodos, incluindo o método CreateStack.
        Conector O Conector de script indica que este CAPI fornece uma MID Server inclusão de script para cada operação. A inclusão de script chama a API. Você pode modificar a inclusão de script ou até mesmo criar uma nova.
        Versão 1.0 indica a versão da API. Você pode ter várias versões desta API com números de versão diferentes. Lembre-se de que na etapa no bloco de recursos do datacenter que cria a VM, um campo Versão é fornecido. Embora estivesse em branco neste exemplo porque há apenas uma versão desta API, você pode especificar um número de versão diferente.
        Produto Microsoft.Compute é o produto que pertence ao provedor no CAPI. Este produto é fornecido por padrão com Cloud Provisioning and Governancee é um dos produtos mais usados para criar VMs no Azure.
      4. Na lista relacionada Mapeadores de método CAPI, clique no ícone de visualização do registro CreateNode e clique em Abrir registro.

        O mapeador do método CreateNode

      5. Observe o mapeador de método CreateNode :

        Formulário Mapeador de CreateNode

        Observe que a operação de endpoint é Executar script, o que indica que uma inclusão de script personalizável é usada para chamar funções no CAPI, que eventualmente faz as chamadas REST para o Azure. A inclusão de script azure-compute-1.0-CreateNode MID Server é especificada no campo Script de solicitação.

        Este gráfico ilustra como os componentes - do bloco de recursos à inclusão de script - estão conectados:

        Inclusão de script do datacenter do Azure

      6. Clique no ícone de registro (ícone de registro) do script de solicitação.

        A inclusão de script azure-compute-1.0-CreateNode MID Server é aberta.

      7. Revise o conteúdo do script.
        
        createNode();
        function createNode(){
           var acp = new AzureComputeVirtualMachine(this.parameters, this.headers);
           var vm = acp.createVirtualMachine();
        
           return vm;
        }
        

        O script chama a função [ createVirtualMachine na classe AzureComputeVirtualMachine. Ele retorna a máquina virtual criada. A classe [ AzureComputeVirtualMachine estende AzureCloudAPIBase, que é uma das APIs de base em Cloud Provisioning and Governance.

      8. Para ver a classe AzureComputeVirtualMachine, que é uma inclusão de script MID Server, abra a interface da instância sistema base (não a Portal de Administração de Nuvem) e navegue até MID Server > Inclusões de script.
      9. Pesquise e abra AzureComputeVirtualMachine.

        Pesquisar uma inclusão de script aberta

      10. Revise a função createVirtualMachine :

        A função define muitas variáveis que são necessárias para criar uma VM, incluindo o Location (datacenter), o nome da VM e assim por diante.

         
        var location = this.parameters.get('Location');  
        var vmName = this.parameters.get('NodeName');
        ...
        

        Esta linha de código chama a função _performVMOperation nesta mesma inclusão de script e passa os parâmetros necessários. Observe que um valor vazio "" foi passado para o parâmetro de ação :

        var response = this._performVMOperation(subscriptionId, resourceGroup, vmName, '', 'PUT', jsonObj.encode(params));

        A função _performVMOperation chama a função _invokeRequest, que está localizada na classe AzureCloudAPIBase :

        retornar this._invokeRequest(esta.pathDefault, parâmetro, método, requestBody);

        O método PUT para a chamada REST é especificado no parâmetro method.

        Observe a AzureCloudAPIBase MID Server inclusão de script. A função _invokeRequest primeiro chama a função _getEndpoint para obter o endpoint e a função _getAPIInvoker para identificar a classe AzureAPIInvoker como a classe que invoca a chamada PUT real:

        var apiInvoker = this._getAPIInvoker(apiEndpoint, this.apiVersion);

        AzureAPIInvoker é estendido de CloudRESTAPIInvoker, que fornece as funções de base para todos os invocadores. Depois que a classe de invocador correta é identificada, uma variável response é criada para conter o valor retornado da função invokePut no CloudRESTAPIInvoker:

        response = apiInvoker.invokePut(requestBody);

        Observe o CloudRESTAPIInvoker, que é a classe base para todos os invocadores. A função invokePut especifica o método PUT e chama getRequeste retorna a resposta da função getResponse, que obtém um código de status e a resposta do Azure. Esta classe de invocador é onde a conexão com o Azure é feita.

        Retorne à inclusão de script AzureComputeVirtualMachine MID Server e localize estas linhas:

        
        var response = this._performVMOperation(subscriptionId, resourceGroup, vmName, '', 'PUT', jsonObj.encode(params));  
        this._compareVMState(response.id, 'PowerState/running');  
        var nodeResponse = this.getVirtualMachine(response.id);
        

        Lembre-se de que a variável response é retornada da chamada para _performVMOperation, que tem a resposta do invocador de API que acionou o método PUT. A variável nodeResponse contém a resposta da função getVirtualMachine, que recebe o ID da máquina virtual que está na resposta. A função getVirtualMachine chama _getVMInfo, que chama a mesma função _invokeRequest que foi chamada anteriormente. Esta chamada é outra conexão com o invocador, que executa as chamadas REST reais. Nesse caso, a chamada REST é uma chamada GET REST para o Azure para obter a identidade da VM.

        O nodeResponse de retorno; A linha retorna nodeResponse na função createVirtualMachine, que foi chamada a partir da inclusão de script MID ServercreateNode na operação [].

        Este gráfico ilustra as classes envolvidas:

        Chamadas do Azure

      11. Navegue de volta para o formulário da API de computação do Azure.
      12. Clique na lista relacionada Substituições de configuração de API e revise os itens necessários para a autenticação.
        Parâmetro de configuração e valor de substituição Descrição

        ClientID

        $(CloudCredential.client_id)

        O ID do cliente é necessário para identificar a aplicação no Azure.

        EndpointURL

        $(CloudCredential.URL)

        A URL do endpoint é a entrada de autorização no Azure.

        SecretKey

        $(CloudCredential.secret_key)

        A chave secreta é usada para autorizar o cliente.

        TenantID

        $(CloudCredential.tenant_id)

        A ID do locatário é o identificador exclusivo globalmente do seu locatário.

        Número de inscrição

        $(CloudCredential.sn_cmp_ea_credential.enrollment_number)

        Token de inscrição

        $(CloudCredential.sn_cmp_ea_credential.access_key)

        Número de inscrição do Azure e o token para acessar a conta de inscrição.

        Consulte Armazene as credenciais principais do serviço Azure na instância para obter mais informações sobre as informações do Azure usadas nessas substituições.

      13. Navegar de volta para Design > API em Nuveme, em seguida, clique na guia Interface.
      14. Pesquise e abra Interfacede computação .
      15. Revise o conteúdo da interface.
        Observe que a interface fornece estruturas de resposta REST para métodos como CreateNode. Normalmente, você não precisa modificar as interfaces existentes.
        Destaque da estrutura de resposta de CreateNode
        Observe a categoria de serviço e as operações:
        Campo ou lista relacionada Descrição
        Categoria de serviço A categoria de serviço classifica a interface. A categoria da Interface de computação também é Computação.
        Operações de Interface de CAPI As operações de interface definem a estrutura JSON para a chamada REST e os parâmetros necessários para a interface.
      16. Clique na operação de interface CreateNode CAPI.
        Esta operação é a que fornece a estrutura para criar o servidor virtual EC2.
      17. Revise os componentes da operação:
        Campo ou lista relacionada Descrição
        Estrutura de resposta

        A estrutura de resposta é a estrutura JSON para chamada de REST API. Ele fornece uma lista de atributos que o provedor pode usar para criar o recurso virtual com valores vazios.

        Parâmetros de Operação de Interface

        Esses parâmetros também são os parâmetros que a interface CAPI precisa do sistema para que ele possa passá-lo na chamada REST para o provedor de nuvem.

        A operação CreateNode

      18. Navegar de volta para Design > API em Nuvem e clique na guia Provedor.
      19. Abra o provedor do Azure.

        O formulário do Provedor de nuvem do Azure é aberto, mostrando que esse provedor se baseia em uma classe do CMDB existente: Azure Datacenter [cmdb_ci_azure_datacenter].

      20. Clique na lista relacionada Produtos em nuvem e classifique a lista pela coluna Nome.

        Observe que vários produtos do Azure estão disponíveis por padrão. Um dos produtos do Azure mais usados e criados a partir de modelos é o Microsoft.Compute.

        Microsoft.Computação

      21. Clique em Microsoft.Compute na coluna Nome.
        Observe que o produto especifica muitos tipos de recursos, cada um dos quais está mapeado para uma classe de IC.

        Tipos de recurso

        Esses tipos de recursos indicam alguns dos ICs, mas não todos, que estão relacionados à máquina virtual. O processador de resposta no bloco de recursos preenche ICs com dados quando o provedor de nuvem provisiona a VM.

    5. Para ver os ICs importantes que estão relacionados à VM:
      1. No Portal de usuário da nuvem, clique em Pilhase abra a pilha que contém a VM.
      2. Clique no ícone Exibir dependência.

        Exibição da dependência

        O mapa de dependência exibe o IC da pilha na parte superior, a VM no meio e os vários ICs relacionados, como a imagem, na parte inferior.

        Mapa de dependência

      3. Para exibir o formulário da VM no CMDB, clique com o botão direito do mouse na seta ao lado de qualquer IC.

        Exibir um IC de VM

      4. No menu, selecione Exibir formulário.

        Exibir o formulário de IC

        O formulário de IC é aberto, mostrando que muitas das informações já estão disponíveis no Portal de usuário da nuvem quando você exibe as propriedades da VM.

        O formulário de IC da VM Propriedades da VM no Portal de usuário da nuvem

        Formulário de VM do Azure

        Propriedades da VM