Exercício - Implantar um arquivo Bicep a partir de fluxos de trabalho do GitHub

Concluído

As Ações do GitHub são semelhantes aos Pipelines do Azure na natureza. Eles fornecem uma maneira de automatizar o desenvolvimento e as implantações de software. Neste exercício, você aprenderá como implantar um arquivo Bicep usando uma Ação do GitHub.

Pré-requisitos

  • Você precisará de uma conta no GitHub que possa criar gratuitamente aqui.
  • Um repositório GitHub também é necessário para armazenar seu arquivo Bicep e fluxos de trabalho criados anteriormente no Exercício - Criar modelos Bicep. Depois de criar seu repositório GitHub , envie o arquivo Bicep para ele.
  • Para implantação no Azure, é necessário acesso a uma assinatura do Azure , que pode ser criada gratuitamente aqui.

Criando uma entidade de serviço no Azure

Para implantar seus recursos no Azure, você precisará criar uma entidade de serviço que o GitHub possa usar. Abra um terminal ou use o Cloud Shell no portal do Azure e digite os seguintes comandos:

az login
az ad sp create-for-rbac --name myApp --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/Bicep --sdk-auth

Nota

Não se esqueça de substituir o {subscription-id} pelo seu ID de assinatura real.

Noções básicas sobre o comando

  • az ad sp create-for-rbac: Cria uma entidade de serviço para controlo de acesso baseado em funções.
  • --nome: Nome do principal de serviço.
  • --função: Atribui a função, permitindo a contributor gestão integral dos recursos.
  • --Âmbitos de aplicação: Limita o acesso a um grupo de recursos específico.
  • --SDK-AUTH: Emite credenciais em um formato adequado para autenticação SDK.

Quando a operação for bem-sucedida, ela deverá gerar um objeto JSON que contenha suas tenantId, subscriptionId, clientId, clientSecrete mais algumas propriedades, como as seguintes:

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

Observe este objeto, pois você precisará adicioná-lo aos seus segredos do GitHub .

Criando um segredo do GitHub

No repositório do GitHub , navegue até Settings>Secrets>Actions. Crie um novo segredo chamado AZURE_CREDENTIALS e cole todo o objeto JSON obtido na etapa anterior.

Crie outro segredo para o nome do grupo de recursos com um nome como AZURE_RG e um para a ID de assinatura chamada AZURE_SUBSCRIPTION.

Captura de tela da página de criação e gerenciamento de segredos do GitHub.

Porquê usar segredos?

Os segredos do GitHub armazenam informações confidenciais de forma segura. Eles são:

  • Encriptado: Armazenado com segurança no GitHub.
  • Não visível nos registos: Mascarado nos registos de execução do fluxo de trabalho.
  • Acessível em fluxos de trabalho: Disponível como variáveis de ambiente durante a execução do fluxo de trabalho.

Criando uma ação do GitHub

Criar um novo fluxo de trabalho

  1. Primeiro, navegue até o repositório e selecione o menu Ações . Em seguida, configure um fluxo de trabalho para criar um fluxo de trabalho vazio no repositório. Você pode renomear o arquivo para um nome diferente, se preferir.

    Captura de tela da criação, edição e visualização de novos arquivos do GitHub.

Definir o fluxo de trabalho

  1. Substitua o conteúdo do arquivo pelo seguinte trecho:

    on: [push]
    name: Azure Resource Manager
    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 Bicep file
          - name: deploy
            uses: azure/arm-deploy@v1
            with:
              subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }}
              resourceGroupName: ${{ secrets.AZURE_RG }}
              template: ./main.bicep
              parameters: storagePrefix=stg
              failOnStdErr: false
    

    Sinta-se à vontade para substituir o valor do storagePrefix parâmetro pelo seu próprio.

Compreender o fluxo de trabalho

Este fluxo de trabalho de ação do GitHub executa o seguinte:

  • Gatilho: É executado automaticamente quando o código é enviado por push para o repositório (on: [push]).

  • Tarefa: Define uma tarefa chamada build-and-deploy que é executada num agente Ubuntu.

  • Steps:

    • Código de checkout: Usa actions/checkout@main para fazer check-out do código do repositório.
    • Inicie sessão no Azure: Usa azure/login@v1 para autenticar-se no Azure usando o AZURE_CREDENTIALS segredo.
    • Implante o arquivo Bicep: Usa azure/arm-deploy@v1 para implantar o modelo Bicep :
      • subscriptionId: ID de assinatura do Azure armazenada em segredos.
      • resourceGroupName: Nome do grupo de recursos associado a segredos.
      • template: Caminho para o ficheiro Bicep.
      • parameters: Parâmetros passados para o modelo Bicep .
      • failOnStdErr: Configure para false não falhar em caso de erro na saída padrão.

    Nota

    A primeira parte do fluxo de trabalho define o gatilho e seu nome. O resto dos detalhes define uma tarefa e usa algumas atividades para verificar o código, iniciar sessão no Azure e implantar o arquivo Bicep.

Confirmar o fluxo de trabalho

  1. Selecione Iniciar confirmação e insira um título e uma descrição na caixa de diálogo pop-up. Em seguida, selecione Confirmar diretamente na ramificação principal, seguido por Confirmar novo arquivo.

    Captura de tela do GitHub confirma um novo arquivo na ramificação principal.

Monitorar o fluxo de trabalho

  1. Navegue até a guia Ações e selecione a ação recém-criada que deve ser executada.

    Captura de tela da ação do GitHub em execução e implantação.

Verificar a implementação

  1. Monitore o status e, quando o trabalho for concluído, verifique o portal do Azure para ver se a conta de armazenamento foi criada.

    Captura de tela da ação do GitHub executada com êxito.