Tutorial: Integração contínua de modelos ARM com o Azure Pipelines

No tutorial anterior, você implanta um modelo vinculado. Neste tutorial, você aprenderá a usar o Azure Pipelines para criar e implantar continuamente projetos de modelo do Azure Resource Manager (modelo ARM).

O Azure DevOps fornece serviços de programadores para equipas de suporte para planear trabalho, colaborar com o desenvolvimento de código e criar e implementar aplicações. Os desenvolvedores podem trabalhar na nuvem usando os Serviços de DevOps do Azure. O Azure DevOps fornece um conjunto integrado de recursos que você pode acessar por meio de seu navegador da Web ou cliente IDE. O Azure Pipelines é um desses recursos. O Azure Pipelines é um serviço de integração contínua (CI) e entrega contínua (CD) com todos os recursos. Ele funciona com seu provedor Git preferido e pode ser implantado na maioria dos principais serviços de nuvem. Em seguida, você pode automatizar a compilação, o teste e a implantação do seu código no Microsoft Azure, no Google Cloud Platform ou na Amazon Web Services.

Nota

Escolha um nome de projeto. Quando você passar pelo tutorial, substitua qualquer um dos ARMPipelineProj pelo nome do seu projeto. Este nome de projeto é usado para gerar nomes de recursos. Um dos recursos é uma conta de armazenamento. O nome da conta de armazenamento tem de ter entre 3 e 24 carateres de comprimento e conter apenas números e letras minúsculas. O nome tem de ser exclusivo. No modelo, o nome da conta de armazenamento é o nome do projeto com o repositório anexado e o nome do projeto deve ter entre 3 e 11 caracteres. Portanto, o nome do projeto deve atender aos requisitos de nome da conta de armazenamento e tem menos de 11 caracteres.

Este tutorial abrange as seguintes tarefas:

  • Preparar um repositório do GitHub
  • Criar um projeto de DevOps do Azure
  • Criar um pipeline do Azure
  • Verificar a implantação do pipeline
  • Atualizar o modelo e reimplantar
  • Clean up resources (Limpar recursos)

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Para concluir este artigo, precisa de:

Preparar um repositório do GitHub

O GitHub é usado para armazenar o código-fonte do projeto, incluindo modelos do Resource Manager. Para outros repositórios com suporte, consulte Repositórios suportados pelo Azure DevOps.

Criar um repositório GitHub

Se você não tiver uma conta do GitHub, consulte Pré-requisitos.

  1. Iniciar sessão no GitHub.

  2. Selecione a imagem da sua conta no canto superior direito e, em seguida, selecione Os seus repositórios.

    Screenshot of creating a GitHub repository for Azure Resource Manager Azure DevOps Azure Pipelines.

  3. Selecione Novo, um botão verde.

  4. Em Nome do repositório, insira um nome de repositório. Por exemplo, ARMPipeline-repo. Lembre-se de substituir qualquer um dos ARMPipeline pelo nome do seu projeto. Você pode selecionar Público ou privado para passar por este tutorial. E, em seguida, selecione Criar repositório.

  5. Anote o URL. O URL do repositório é o seguinte formato - https://github.com/[YourAccountName]/[YourRepositoryName].

Este repositório é conhecido como um repositório remoto. Cada um dos desenvolvedores do mesmo projeto pode clonar seu próprio repositório local e mesclar as alterações no repositório remoto.

Clone o repositório remoto

  1. Abra o Git Shell ou o Git Bash. Veja Pré-requisitos.

  2. Verifique se sua pasta atual é GitHub.

  3. Execute o seguinte comando:

    git clone https://github.com/[YourAccountName]/[YourGitHubRepositoryName]
    cd [YourGitHubRepositoryName]
    mkdir create_web_app
    cd create_web_app
    pwd
    

    Substitua pelo nome da conta do GitHub e substitua [YourAccountName] [YourGitHubRepositoryName] pelo nome do repositório criado no procedimento anterior.

A pasta create_web_app é a pasta onde o modelo está armazenado. O pwd comando mostra o caminho da pasta. O caminho é onde você salva o modelo no procedimento a seguir.

Baixar um modelo de início rápido

Em vez de criar os modelos, você pode baixá-los e salvá-los na pasta create_web_app .

Tanto o nome da pasta quanto os nomes de arquivo são usados como estão no pipeline. Se você alterar esses nomes, deverá atualizar os nomes usados no pipeline.

Envie o modelo para o repositório remoto

O azuredeploy.json foi adicionado ao repositório local. Em seguida, carregue o modelo no repositório remoto.

  1. Abra o Git Shell ou o Git Bash, se não estiver aberto.

  2. Altere o diretório para a pasta create_web_app no repositório local.

  3. Verifique se o arquivo azuredeploy.json está na pasta.

  4. Execute o seguinte comando:

    git add .
    git commit -m "Add web app templates."
    git push origin main
    

    Você pode receber um aviso sobre LF. Você pode ignorar o aviso. principal é o ramo principal . Normalmente, você cria uma ramificação para cada atualização. Para simplificar o tutorial, use a ramificação principal diretamente.

  5. Navegue até o repositório GitHub a partir de um navegador. O URL é https://github.com/[YourAccountName]/[YourGitHubRepository]. Você verá a pasta create_web_app e os dois arquivos dentro da pasta.

  6. Selecione azuredeploy.json para abrir o modelo.

  7. Selecione o botão Raw . O URL começa com https://raw.githubusercontent.com.

  8. Faça uma cópia do URL. Você precisa fornecer esse valor ao configurar o pipeline posteriormente no tutorial.

Até agora, você criou um repositório GitHub e carregou os modelos para o repositório.

Criar um projeto de DevOps

Uma organização de DevOps é necessária antes que você possa prosseguir para o próximo procedimento. Se você não tiver um, consulte Pré-requisitos.

  1. Iniciar sessão no Azure DevOps.

  2. Selecione uma organização de DevOps à esquerda e, em seguida, selecione Novo projeto. Se você não tiver nenhum projeto, a página criar projeto será aberta automaticamente.

  3. Introduza os seguintes valores:

    Screenshot of creating an Azure DevOps project for Azure Resource Manager Azure DevOps Azure Pipelines.

    • Nome do projeto: insira um nome de projeto. Você pode usar o nome do projeto escolhido no início do tutorial.
    • Visibilidade: Selecione Privado.

    Use o valor padrão para as outras propriedades.

  4. Selecione Criar.

Crie uma conexão de serviço que é usada para implantar projetos no Azure.

  1. Selecione Configurações do projeto na parte inferior do menu à esquerda.

  2. Selecione Conexões de serviço em Pipelines.

  3. Selecione Criar conexão de serviço, selecione Gerenciador de Recursos do Azure e selecione Avançar.

  4. Selecione Entidade de serviço (automática) e, em seguida, selecione Seguinte.

  5. Introduza os seguintes valores:

    • Nível de escopo: selecione Assinatura.
    • Subscrição: selecione a sua subscrição.
    • Grupo de recursos: deixe-o em branco.
    • Nome da conexão: insira um nome de conexão. Por exemplo, ARMPipeline-conn. Anote este nome, você precisa do nome quando criar seu pipeline.
    • Conceda permissão de acesso a todos os pipelines. (selecionado)
  6. Selecione Guardar.

Criar um pipeline

Até agora, você concluiu as seguintes tarefas. Se você ignorar as seções anteriores porque está familiarizado com o GitHub e o DevOps, deverá concluir as tarefas antes de continuar.

  • Crie um repositório GitHub e salve os modelos na pasta create_web_app no repositório.
  • Crie um projeto DevOps e crie uma conexão de serviço do Azure Resource Manager.

Para criar um pipeline com uma etapa para implantar um modelo:

  1. Selecione Pipelines no menu à esquerda.

  2. Selecione Criar pipeline.

  3. No separador Connect (Ligar), selecione GitHub. Se solicitado, insira suas credenciais do GitHub e siga as instruções. Se você vir a tela a seguir, selecione Somente selecionar repositórios e verifique se seu repositório está na lista antes de selecionar Aprovar & Instalar.

    Screenshot of selecting repositories for Azure Resource Manager Azure DevOps Azure Pipelines.

  4. Na guia Selecionar, selecione seu repositório. O nome padrão é [YourAccountName]/[YourGitHubRepositoryName].

  5. Na guia Configurar, selecione Pipeline inicial. Ele mostra o arquivo de pipeline azure-pipelines.yml com duas etapas de script.

  6. Exclua as duas etapas de script do arquivo .yml .

  7. Mova o cursor para a linha após as etapas:.

  8. Selecione Mostrar assistente à direita da tela para abrir o painel Tarefas .

  9. Selecione Implantação de modelo ARM.

  10. Introduza os seguintes valores:

    • deploymentScope: Selecione Grupo de Recursos. Para saber mais sobre os escopos, consulte Escopos de implantação.
    • Conexão do Azure Resource Manager: selecione o nome da conexão de serviço que você criou anteriormente.
    • Assinatura: especifique o ID da assinatura de destino.
    • Ação: Selecione a ação Criar ou atualizar grupo de recursos executa 2 ações - 1. criar um grupo de recursos se um novo nome de grupo de recursos for fornecido; 2. Implante o modelo especificado.
    • Grupo de recursos: insira um novo nome de grupo de recursos. Por exemplo, ARMPipeline-rg.
    • Local: Selecione um local para o grupo de recursos, por exemplo, Central US .
    • Local do modelo: selecione a URL do arquivo, o que significa que a tarefa procura o arquivo de modelo usando a URL. Como relativePath é usado no modelo principal e relativePath só é suportado em implantações baseadas em URI, você deve usar a URL aqui.
    • Link do modelo: insira a URL que você obteve no final da seção Preparar um repositório do GitHub. Começa com https://raw.githubusercontent.com.
    • Link dos parâmetros do modelo: deixe este campo em branco. Você especificará os valores dos parâmetros nos parâmetros do modelo Substituir.
    • Substituir parâmetros do modelo: insira -projectName [EnterAProjectName].
    • Modo de implantação: selecione Incremental.
    • Nome da implantação: insira DeployPipelineTemplate. Selecione Avançado antes de ver Nome da implantação.

    Screenshot of the ARM template deployment page with required values entered for Azure DevOps Azure Pipelines.

  11. Selecione Adicionar.

    Para obter mais informações sobre a tarefa, consulte Tarefa de implantação do grupo de recursos do Azure e Tarefa de implantação de modelo do Azure Resource Manager

    O ficheiro .yml deve ser semelhante a:

    Screenshot of the Review page with the new pipeline titled Review your pipeline YAML for Azure DevOps Azure Pipelines.

  12. Selecione Guardar e executar.

  13. No painel Salvar e executar, selecione Salvar e executar novamente. Uma cópia do arquivo YAML é salva no repositório conectado. Você pode ver o arquivo YAML navegando até o repositório.

  14. Verifique se o pipeline foi executado com êxito.

    Screenshot of Azure Resource Manager Azure DevOps Azure Pipelines YAML file.

Verificar a implementação

  1. Inicie sessão no portal do Azure.
  2. Abra o grupo de recursos. O nome é o que você especificou no arquivo YAML do pipeline. Você verá uma conta de armazenamento criada. O nome da conta de armazenamento começa com store.
  3. Selecione o nome da conta de armazenamento para abri-la.
  4. Selecione Propriedades. Observe que a replicação é um LRS (armazenamento com redundância local).

Atualizar e reimplantar

Quando você atualiza o modelo e envia as alterações para o repositório remoto, o pipeline atualiza automaticamente os recursos, a conta de armazenamento nesse caso.

  1. Abra linkedStorageAccount.json a partir do repositório local no Visual Studio Code ou em qualquer editor de texto.

  2. Atualize o defaultValue de storageAccountType para Standard_GRS. Veja a captura de ecrã abaixo:

    Screenshot of updating the YAML file for Azure Resource Manager Azure DevOps Azure Pipelines.

  3. Guarde as alterações.

  4. Envie as alterações para o repositório remoto executando os seguintes comandos do Git Bash/Shell.

    git pull origin main
    git add .
    git commit -m "Update the storage account type."
    git push origin main
    

    O primeiro comando (pull) sincroniza o repositório local com o repositório remoto. O arquivo YAML de pipeline só foi adicionado ao repositório remoto. A execução do pull comando baixa uma cópia do arquivo YAML para a ramificação local.

    O quarto comando (push) carrega o arquivo linkedStorageAccount.json revisado para o repositório remoto. Com a ramificação principal do repositório remoto atualizada, o pipeline é acionado novamente.

Para verificar as alterações, você pode verificar a propriedade Replication da conta de armazenamento. Consulte Verificar a implantação.

Clean up resources (Limpar recursos)

Quando os recursos do Azure já não forem necessários, limpe os recursos implementados ao eliminar o grupo de recursos.

  1. No portal do Azure, selecione Grupo de recursos no menu à esquerda.
  2. Introduza o nome do grupo de recursos no campo Filtrar por nome.
  3. Selecione o nome do grupo de recursos.
  4. Selecione Eliminar grupo de recursos no menu superior.

Você também pode querer excluir o repositório GitHub e o projeto Azure DevOps.

Próximos passos

Parabéns, você terminou este tutorial de implantação de modelo do Gerenciador de Recursos. Deixe-nos saber se você tem quaisquer comentários e sugestões na seção de feedback. Obrigado! Você está pronto para entrar em conceitos mais avançados sobre modelos. O próximo tutorial entra em mais detalhes sobre como usar a documentação de referência de modelo para ajudar na definição de recursos a serem implantados.