Partilhar via


Implantar modelos ARM usando as Ações do GitHub

O GitHub Actions é um conjunto de recursos no GitHub para automatizar seus fluxos de trabalho de desenvolvimento de software no mesmo lugar em que você armazena código e colabora em solicitações pull e problemas.

Use a Ação Implantar Modelo do Azure Resource Manager para automatizar a implantação de um modelo do Azure Resource Manager (modelo ARM) no Azure.

Pré-requisitos

Visão geral do arquivo de fluxo de trabalho

Um fluxo de trabalho é definido por um arquivo YAML (.yml) no /.github/workflows/ caminho no repositório. Esta definição contém as várias etapas e parâmetros que compõem o fluxo de trabalho.

O ficheiro tem duas secções:

Section Tarefas
Autenticação 1. Gere credenciais de implantação.
Implementar 1. Implante o modelo do Gerenciador de Recursos.

Gerar credenciais de implantação

Para usar a ação Logon do Azure com o OIDC, você precisa configurar uma credencial de identidade federada em um aplicativo Microsoft Entra ou uma identidade gerenciada atribuída pelo usuário.

Opção 1: Aplicação Microsoft Entra

Opção 2: Identidade gerenciada atribuída pelo usuário

Configurar os segredos do GitHub

Você precisa fornecer a ID do cliente, a ID do diretório (locatário) e a ID da assinatura do aplicativo para a ação de login. Esses valores podem ser fornecidos diretamente no fluxo de trabalho ou podem ser armazenados em segredos do GitHub e referenciados em seu fluxo de trabalho. Salvar os valores como segredos do GitHub é a opção mais segura.

  1. No GitHub, vá para o seu repositório.

  2. Selecione Segredos de Segurança > e Ações de variáveis>.

    Captura de ecrã a mostrar a adição de um segredo

  3. Selecione Novo segredo do repositório.

    Nota

    Para melhorar a segurança do fluxo de trabalho em repositórios públicos, use segredos de ambiente em vez de segredos de repositório. Se o ambiente exigir aprovação, um trabalho não poderá acessar segredos de ambiente até que um dos revisores necessários o aprove.

  4. Crie segredos para AZURE_CLIENT_ID, AZURE_TENANT_IDe AZURE_SUBSCRIPTION_ID. Copie estes valores do seu aplicativo Microsoft Entra ou da identidade gerenciada atribuída pelo usuário para seus segredos do GitHub:

    Segredo do GitHub Aplicativo Microsoft Entra ou identidade gerenciada atribuída pelo usuário
    AZURE_CLIENT_ID ID de Cliente
    AZURE_SUBSCRIPTION_ID ID de Subscrição
    AZURE_TENANT_ID ID do Diretório (inquilino)

    Nota

    Por motivos de segurança, recomendamos o uso de Segredos do GitHub em vez de passar valores diretamente para o fluxo de trabalho.

Adicionar modelo do Resource Manager

Adicione um modelo do Resource Manager ao repositório do GitHub. Este modelo cria uma conta de armazenamento.

https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json

Você pode colocar o arquivo em qualquer lugar do repositório. O exemplo de fluxo de trabalho na próxima seção pressupõe que o arquivo de modelo tenha o nome azuredeploy.json e seja armazenado na raiz do repositório.

Criar um fluxo de trabalho

O arquivo de fluxo de trabalho deve ser armazenado na pasta .github/workflows na raiz do repositório. A extensão do arquivo de fluxo de trabalho pode ser .yml ou .yaml.

  1. No repositório GitHub, selecione Ações no menu superior.
  2. Selecione Novo fluxo de trabalho.
  3. Selecione configurar um fluxo de trabalho você mesmo.
  4. Renomeie o arquivo de fluxo de trabalho se preferir um nome diferente de main.yml. Por exemplo: deployStorageAccount.yml.
  5. Substitua os conteúdos do ficheiro yml pelo seguinte:
  on: [push]
  name: Azure ARM
  jobs:
    build-and-deploy:
      runs-on: ubuntu-latest
      steps:

        # Checkout code
      - uses: actions/checkout@main

        # Log into Azure
      - uses: azure/login@v1
        with:
          creds: ${{ secrets.AZURE_CREDENTIALS }}

        # Deploy ARM template
      - name: Run ARM deploy
        uses: azure/arm-deploy@v1
        with:
          subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }}
          resourceGroupName: ${{ secrets.AZURE_RG }}
          template: ./azuredeploy.json
          parameters: storageAccountType=Standard_LRS

        # output containerName variable from template
      - run: echo ${{ steps.deploy.outputs.containerName }}

Nota

Em vez disso, você pode especificar um arquivo de parâmetros de formato JSON na ação Implantar ARM (exemplo: .azuredeploy.parameters.json).

A primeira seção do arquivo de fluxo de trabalho inclui:

  • name: O nome do fluxo de trabalho.
  • on: O nome dos eventos do GitHub que acionam o fluxo de trabalho. O fluxo de trabalho é acionado quando há um evento push na ramificação principal, que modifica pelo menos um dos dois arquivos especificados. Os dois arquivos são o arquivo de fluxo de trabalho e o arquivo de modelo.
  1. Selecione Start commit (Iniciar consolidação).
  2. Selecione Confirmar diretamente na ramificação principal.
  3. Selecione Confirmar novo arquivo (ou Confirmar alterações).

Como o fluxo de trabalho está configurado para ser acionado pelo arquivo de fluxo de trabalho ou pelo arquivo de modelo que está sendo atualizado, o fluxo de trabalho é iniciado logo após você confirmar as alterações.

Verificar o status do fluxo de trabalho

  1. Selecione a guia Ações . Você verá um fluxo de trabalho Criar deployStorageAccount.yml listado. Leva de 1 a 2 minutos para executar o fluxo de trabalho.
  2. Selecione o fluxo de trabalho para abri-lo.
  3. Selecione Executar implantação ARM no menu para verificar a implantação.

Clean up resources (Limpar recursos)

Quando o grupo de recursos e o repositório não forem mais necessários, limpe os recursos implantados excluindo o grupo de recursos e o repositório GitHub.

Próximos passos