Exercício - Implantar um arquivo Bicep a partir de fluxos de trabalho do GitHub
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
contributorgestã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.
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
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.
Definir o fluxo de trabalho
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: falseSinta-se à vontade para substituir o valor do
storagePrefixparâ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-deployque é executada num agente Ubuntu.Steps:
-
Código de checkout: Usa
actions/checkout@mainpara fazer check-out do código do repositório. -
Inicie sessão no Azure: Usa
azure/login@v1para autenticar-se no Azure usando oAZURE_CREDENTIALSsegredo. -
Implante o arquivo Bicep: Usa
azure/arm-deploy@v1para 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 parafalsenã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.
-
Código de checkout: Usa
Confirmar o fluxo de trabalho
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.
Monitorar o fluxo de trabalho
Navegue até a guia Ações e selecione a ação recém-criada que deve ser executada.
Verificar a implementação
Monitore o status e, quando o trabalho for concluído, verifique o portal do Azure para ver se a conta de armazenamento foi criada.