Implantar modelos do ARM usando o GitHub Actions.

O GitHub Actions é um pacote de recursos do GitHub usado para automatizar seus fluxos de trabalho de desenvolvimento de software no mesmo local em que você armazena o código e colabora com outras pessoas em solicitações de pull e problemas.

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

Pré-requisitos

Visão geral do arquivo do fluxo de trabalho

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

O arquivo tem duas seções:

Seção Tarefas
Autenticação 1. Gerar as credenciais de implantação.
Implantar 1. Implantar o modelo do Resource Manager.

Gerar as credenciais de implantação

Crie uma entidade de serviço com o comando az ad sp create-for-rbac na CLI do Azure. Execute esse 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 essa usam --sdk-auth com um aviso de substituiçã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 aplicativo do Serviço de Aplicativo semelhante ao mostrado abaixo. Copie esse objeto JSON para uso posterior.

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

Configurar os segredos do GitHub

  1. No GitHub, acesse seu repositório.

  2. Acesse Configurações no menu de navegação.

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

    Screenshot of adding a secret

  4. Selecione Novo segredo de repositório.

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

  6. Selecione Adicionar segredo.

Adicionar modelo do Resource Manager

Adicione um modelo do Resource Manager ao repositório GitHub. O 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 do fluxo de trabalho na próxima seção presume que o arquivo de modelo foi denominado como azuredeploy.json e armazenado na raiz do seu repositório.

Criar 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 do fluxo de trabalho pode ser .yml ou .yaml.

  1. No repositório GitHub, selecione Actions no menu superior.
  2. Selecione Novo fluxo de trabalho.
  3. Selecione Configurar fluxo de trabalho por conta própria.
  4. Renomeie o arquivo do fluxo de trabalho se preferir usar um nome diferente de main.yml. Por exemplo: deployStorageAccount.yml.
  5. Substitua o conteúdo do arquivo 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 }}

Observação

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

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

  • nome: Nome do fluxo de trabalho.
  • Ativado: o nome dos eventos do GitHub que acionam o fluxo de trabalho. O fluxo de trabalho é acionado quando há um evento no qual efetua-se o push na ramificação principal, que modifica pelo menos um dos dois arquivos especificados. Os dois arquivos correspondem ao arquivo de fluxo de trabalho e ao arquivo de modelo.
  1. Selecione Confirmar início.
  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, ele é iniciado logo após você confirmar as alterações.

Verificar status do fluxo de trabalho

  1. Selecione a guia Actions. Você verá listado um fluxo de trabalho Criar deployStorageAccount.yml. O fluxo de trabalho leva de um a dois minutos para ser executado.
  2. Selecione o fluxo de trabalho para abri-lo.
  3. Selecione Executar implantação do ARM no menu para verificar a implantação.

Limpar os recursos

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

Próximas etapas