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

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

O Azure DevOps fornece serviços de desenvolvedor para capacitar as equipes a fim de planejar o trabalho, colaborar com o desenvolvimento de código e criar e implantar aplicativos. Os desenvolvedores podem trabalhar na nuvem usando o Azure DevOps Services. O Azure DevOps fornece um conjunto integrado de recursos que pode ser acessado por meio do seu navegador da Web ou do cliente do IDE. O Azure Pipelines é um desses recursos. O Azure Pipelines é um serviço CI (integração contínua) e CD (entrega contínua) cheio de recursos. Ele funciona com seu provedor Git de preferência e pode ser implantado na maioria dos principais serviços de nuvem. É possível automatizar o build, o teste e a implantação do seu código para Microsoft Azure, Google Cloud Platform ou Amazon Web Services.

Observação

Escolha um nome de projeto. Ao percorrer o tutorial, substitua qualquer ARMPipelineProj pelo nome do projeto. Esse nome do projeto é usado para gerar nomes de recurso. Um dos recursos é uma conta de armazenamento. Os nomes da conta de armazenamento devem ter entre 3 e 24 caracteres, usar números e apenas letras minúsculas. O nome deve ser exclusivo. No modelo, o nome da conta de armazenamento é o nome do projeto com store acrescentado 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 ter menos de 11 caracteres.

Este tutorial cobre as seguintes tarefas:

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

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

Pré-requisitos

Para concluir este artigo, você precisa do seguinte:

Preparar um repositório GitHub

O GitHub é usado para armazenar o código-fonte do seu projeto incluindo modelos do Resource Manager. Para ver outros repositórios compatíveis, confira repositórios compatíveis com o Azure DevOps.

Criar um repositório GitHub

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

  1. Entre no GitHub.

  2. Selecione sua imagem de conta no canto superior direito e, em seguida, selecione 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. No Nome do repositório, insira um nome do repositório. Por exemplo, ARMPipeline-repo. Substitua qualquer ARMPipeline pelo nome do projeto. É possível selecionar público ou privado para percorrer este tutorial. E, em seguida, selecione Criar repositório.

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

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

Clonar o repositório remoto

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

  2. Verifique se sua pasta atual é GitHub.

  3. Execute o comando a seguir:

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

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

A pasta create_web_app é a pasta em que o modelo é armazenado. O comando pwd mostra o caminho da pasta. O caminho é local em que 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.

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

Enviar por push o modelo para o repositório remoto

O azuredeploy.json foi adicionado ao repositório local. Em seguida, faça upload do modelo para o repositório remoto.

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

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

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

  4. Execute o comando a seguir:

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

    Você pode receber um aviso sobre LF. É possível ignorá-lo. A main é a ramificação principal. Normalmente, você cria um branch para cada atualização. Para simplificar o tutorial, use a ramificação principal diretamente.

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

  6. Selecione azuredeploy.json para abrir o modelo.

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

  8. Faça uma cópia da URL. Você precisará fornecer esse valor quando 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 de poder passar para o próximo procedimento. Se você não tiver uma, confira Pré-requisitos.

  1. Entre no Azure DevOps.

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

  3. Insira os valores a seguir:

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

    • Nome do projeto: insira um nome para o projeto. É possível usar o nome do projeto selecionado no começo do tutorial.
    • Visibilidade: selecione Privado.

    Use o valor padrão para outras propriedades.

  4. Selecione Criar.

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

  1. Selecione as Configurações do projeto na parte inferior do menu esquerdo.

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

  3. Selecione Criar conexão de serviço, Azure Resource Manager e Avançar.

  4. Selecione Service principal (automatic) e Next.

  5. Insira os valores a seguir:

    • Nível do escopo: selecione Assinatura.
    • Assinatura: selecione sua assinatura.
    • Grupo de Recursos: Deixe em branco.
    • Nome da conexão: insira um nome para a conexão. Por exemplo, ARMPipeline-conn. Anote esse nome; você precisará dele ao criar seu pipeline.
    • Conceder permissão de acesso a todos os pipelines. (selecionado)
  6. Clique em Salvar.

Criar um pipeline

Até agora, você concluiu as seguintes tarefas. Se você ignorar as seções anteriores porque conhece o GitHub e o DevOps, será necessário 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 de DevOps e 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 esquerdo.

  2. Escolha Criar pipeline.

  3. Na guia Conectar, selecione GitHub. Se solicitado, insira suas credenciais do GitHub e siga as instruções. Se você vir a tela a seguir, selecione Selecionar apenas repositórios e verifique se seu repositório está na lista antes de selecionar Aprovar e 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. Ela 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 etapas: .

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

  9. Selecione Implantação de modelo do ARM.

  10. Insira os valores a seguir:

    • deploymentScope: Selecione Grupo de Recursos. Para saber mais sobre os escopos, confira Escopos de implantação.
    • Conexão do Azure Resource Manager: especifique o nome da conexão de serviço criada anteriormente.
    • Assinatura: especifique a ID da assinatura de destino.
    • Ação: selecionar 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. implantar o modelo especificado.
    • Grupo de recursos: insira um nome para o novo grupo de recursos. Por exemplo, ARMPipeline-rg.
    • Localização: selecione um local para o grupo de recursos, por exemplo, EUA Central.
    • Localização 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 é compatível apenas com implantações baseadas em URI, você deve usar a URL aqui.
    • Link do modelo: insira a URL que você obteve ao final da seção Preparar um repositório GitHub. Começa com https://raw.githubusercontent.com .
    • Link dos parâmetros do modelo: deixe este campo em branco. Você especificará os valores de parâmetro em Substituir parâmetros de modelo.
    • Substituir parâmetros de modelo: digite -projectName [EnterAProjectName] .
    • Modo de implantação: selecione Incremental.
    • Nome da implantação: digite DeployPipelineTemplate. Selecione Avançado antes de poder ver o 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, confira Tarefa de implantação de grupo de recursos do Azure e Tarefa de implantação de modelo do Azure Resource Manager

    O arquivo .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 Salvar e executar.

  13. No painel Salvar e executar, selecione Salvar e executar novamente. Uma cópia do arquivo YAML é salva no repositório conectado. É possível ver o arquivo YAML navegando até seu repositório.

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

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

Verificar a implantação

  1. Entre 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 é LRS (armazenamento com redundância local) .

Atualizar e reimplantar

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

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

  2. Atualize o defaultValue de storageAccountType para Standard_GRS. Veja a seguinte captura de tela:

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

  3. Salve as alterações.

  4. Efetue push das 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 do pipeline foi adicionado ao repositório remoto. A execução do comando pull baixa uma cópia do arquivo YAML para o branch 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 é disparado novamente.

Para confirmar as alterações, verifique a propriedade Replicação da conta de armazenamento. Confira Verificar a implantação.

Limpar os recursos

Quando os recursos do Azure já não forem necessários, limpe os recursos implantados excluindo o grupo de recursos.

  1. No portal do Azure, escolha Grupos de recursos do menu à esquerda.
  2. No campo Filtrar por nome, insira o nome do grupo de recursos.
  3. Selecione o nome do grupo de recursos.
  4. Escolha Excluir grupo de recursos no menu superior.

Também convém excluir o repositório GitHub e o projeto do Azure DevOps.

Próximas etapas

Parabéns, você concluiu este tutorial de implantação de modelo do Resource Manager. Informe-nos se você tiver comentários e sugestões na seção de comentários. Obrigado! Você está pronto para acessar conceitos mais avançados sobre modelos. O próximo tutorial detalha mais o uso da documentação de referência do modelo para ajudar na definição de recursos a serem implantados.