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:
- Uma conta do GitHub, onde você a usa para criar um repositório para seus modelos. Se não tiver uma, pode criar uma gratuitamente. Para obter mais informações sobre como usar repositórios GitHub, consulte Criar repositórios GitHub.
- Instale o Git. Esta instrução tutorial usa Git Bash ou Git Shell. Para obter instruções, consulte Instalar o Git.
- Uma organização do Azure DevOps. Se não tiver uma, pode criar uma gratuitamente. Consulte Criar uma organização ou coleção de projetos.
- (facultativo) Código do Visual Studio com extensão Resource Manager Tools. Consulte Guia de início rápido: criar modelos ARM com o Visual Studio Code.
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.
Iniciar sessão no GitHub.
Selecione a imagem da sua conta no canto superior direito e, em seguida, selecione Os seus repositórios.
Selecione Novo, um botão verde.
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.
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
Abra o Git Shell ou o Git Bash. Veja Pré-requisitos.
Verifique se sua pasta atual é GitHub.
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 .
- O modelo principal: https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/get-started-deployment/linked-template/azuredeploy.json
- O modelo vinculado: https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/get-started-deployment/linked-template/linkedStorageAccount.json
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.
Abra o Git Shell ou o Git Bash, se não estiver aberto.
Altere o diretório para a pasta create_web_app no repositório local.
Verifique se o arquivo azuredeploy.json está na pasta.
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.
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.Selecione azuredeploy.json para abrir o modelo.
Selecione o botão Raw . O URL começa com
https://raw.githubusercontent.com
.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.
Iniciar sessão no Azure DevOps.
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.
Introduza os seguintes valores:
- 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.
Selecione Criar.
Crie uma conexão de serviço que é usada para implantar projetos no Azure.
Selecione Configurações do projeto na parte inferior do menu à esquerda.
Selecione Conexões de serviço em Pipelines.
Selecione Criar conexão de serviço, selecione Gerenciador de Recursos do Azure e selecione Avançar.
Selecione Entidade de serviço (automática) e, em seguida, selecione Seguinte.
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)
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:
Selecione Pipelines no menu à esquerda.
Selecione Criar pipeline.
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.
Na guia Selecionar, selecione seu repositório. O nome padrão é
[YourAccountName]/[YourGitHubRepositoryName]
.Na guia Configurar, selecione Pipeline inicial. Ele mostra o arquivo de pipeline azure-pipelines.yml com duas etapas de script.
Exclua as duas etapas de script do arquivo .yml .
Mova o cursor para a linha após as etapas:.
Selecione Mostrar assistente à direita da tela para abrir o painel Tarefas .
Selecione Implantação de modelo ARM.
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.
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:
Selecione Guardar e executar.
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.
Verifique se o pipeline foi executado com êxito.
Verificar a implementação
- Inicie sessão no portal do Azure.
- 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.
- Selecione o nome da conta de armazenamento para abri-la.
- 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.
Abra linkedStorageAccount.json a partir do repositório local no Visual Studio Code ou em qualquer editor de texto.
Atualize o defaultValue de storageAccountType para Standard_GRS. Veja a captura de ecrã abaixo:
Guarde as alterações.
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 dopull
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.
- No portal do Azure, selecione Grupo de recursos no menu à esquerda.
- Introduza o nome do grupo de recursos no campo Filtrar por nome.
- Selecione o nome do grupo de recursos.
- 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.