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 caminho no /.github/workflows/ 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:

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

Gerar credenciais de implantação

Crie uma entidade de serviço com o comando az ad sp create-for-rbac na CLI do Azure. Execute este comando com o Azure Cloud Shell no portal do Azure ou selecionando o botão Experimentar .

az ad sp create-for-rbac --name "myML" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
                            --json-auth

O parâmetro --json-auth está disponível nas versões >da CLI do Azure = 2.51.0. Versões anteriores a este uso --sdk-auth com um aviso de descontinuação.

No exemplo acima, substitua os espaços reservados pela ID da assinatura, nome do grupo de recursos e nome do aplicativo. A saída é um objeto JSON com as credenciais de atribuição de função que fornecem acesso ao seu aplicativo do Serviço de Aplicativo semelhante ao abaixo. Copie este objeto JSON para mais tarde.

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
  }

Configurar os segredos do GitHub

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

  2. Vá para Configurações no menu de navegação.

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

    Screenshot of adding a secret

  4. Selecione Novo segredo do repositório.

  5. Cole toda a saída JSON do comando CLI do Azure no campo de valor do segredo. Dê o nome AZURE_CREDENTIALSao segredo .

  6. Selecione Add secret (Adicionar segredo).

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