Exercício – Configurar seu ambiente

Concluído

Importante

É preciso ter uma assinatura do Azure para fazer esse exercício, e isso pode gerar encargos. Caso ainda não tenha uma assinatura do Azure, crie uma conta gratuita antes de começar.

Antes de configurar os fluxos de trabalho de pull request da sua empresa de brinquedos, você precisa configurar o seu ambiente.

Nesta unidade, você verificará se os ambientes do Azure e do GitHub estão configurados para concluir o restante do módulo com êxito.

Para atingir esses objetivos, você vai:

  • Configure um repositório GitHub para este módulo.
  • Clone o repositório para o seu computador.
  • Crie uma identidade de carga de trabalho no Microsoft Entra ID.
  • Crie um segredo no GitHub.

Obter o repositório GitHub

Nesta seção, você configurará o seu repositório do GitHub para concluir o restante deste módulo criando um novo repositório com base em um repositório de modelos. O repositório de modelo contém os arquivos necessários para prosseguir neste módulo.

Os módulos neste roteiro de aprendizagem fazem parte de uma progressão. Para fins de aprendizado, cada módulo tem um repositório de modelo GitHub associado.

Dica

Mesmo que você tenha concluído o módulo anterior no roteiro de aprendizagem, siga estas instruções para criar um repositório e dê a ele um novo nome.

Começar com o repositório de modelo

Execute um modelo que configura seu repositório GitHub.

No site do GitHub, crie um repositório com base no modelo executando as seguintes etapas:

  1. Selecione Usar este modelo>Criar um repositório.

    Captura de tela da interface do GitHub mostrando o repositório de modelo, com o botão 'Usar este modelo' realçado.

  2. Observe o nome de usuário ou organização do GitHub. No exemplo, o nome de usuário do GitHub é mygithubuser. Você precisará desse nome em breve.

  3. Digite um nome para seu novo projeto, como toy-website-auto-review.

  4. Selecione a opção Público.

    Ao criar seus repositórios, você pode querer torná-los privados. Neste módulo, você trabalhará com alguns recursos do GitHub que funcionam somente com repositórios públicos e contas do GitHub Enterprise.

  5. Selecione Criar repositório.

    Captura de tela da interface do GitHub mostrando a página de criação do repositório.

Clonar o repositório

Agora você tem uma cópia do repositório de modelo na sua conta. Clone este repositório localmente para começar a trabalhar nele.

  1. Selecione Código e o ícone de cópia.

    Captura de tela da interface do GitHub mostrando o novo repositório, com o botão de cópia de URL do repositório realçado.

  2. Abra o Visual Studio Code.

  3. Abra uma janela do terminal do Visual Studio Code selecionando Terminal>Novo Terminal. Geralmente, a janela é aberta na parte inferior da tela.

  4. No terminal, vá para o diretório em que você deseja clonar o repositório do GitHub no computador local. Por exemplo, para clonar o repositório na pasta toy-website-auto-review, execute o seguinte comando:

    cd toy-website-auto-review
    
  5. Digite git clone e, em seguida, copie a URL que você copiou anteriormente, que tem esta aparência:

    git clone https://github.com/mygithubuser/toy-website-auto-review.git
    
  6. Reabra o Visual Studio Code na pasta do repositório executando o seguinte comando no terminal do Visual Studio Code:

    code -r toy-website-auto-review
    

Entrar no Azure

Agora que você clonou o repositório localmente em seu computador, você entrará em seu ambiente do Azure. Você usará sua conta do Azure para criar uma identidade de carga de trabalho para os fluxos de trabalho do GitHub Actions usarem.

  1. No terminal no Visual Studio Code, execute o seguinte comando para entrar no Azure:

    az login
    
  2. No navegador que é aberto, entre em sua conta do Azure.

  1. No terminal do Visual Studio Code, entre no Azure executando o seguinte comando:

    Connect-AzAccount
    
  2. No navegador que é aberto, entre em sua conta do Azure.

Criar uma identidade de carga de trabalho

Posteriormente neste módulo do Microsoft Learn, o fluxo de trabalho de solicitação de pull criará grupos de recursos e recursos em sua assinatura. Para implantar recursos, você precisa criar uma identidade de carga de trabalho e conceder a ela a função de Colaborador em sua assinatura.

Aviso

A identidade que você cria aqui tem um alto nível de acesso à sua assinatura do Azure. Para evitar problemas acidentais, use uma assinatura que não seja de produção. Não execute essas etapas em um ambiente que contenha suas cargas de trabalho de produção.

Em seus fluxos de trabalho de validação de solicitação de pull, recomendamos que você use uma assinatura dedicada do Azure.

Para criar a identidade de carga de trabalho, os comandos da CLI do Azure usam jq para analisar dados da saída JSON. Se você não tiver o jq instalado, poderá usar o Bash no Azure Cloud Shell para criar a identidade da carga de trabalho, o grupo de recursos e a atribuição de função e preparar os segredos do GitHub.

  1. Execute o código a seguir para definir as variáveis do nome de usuário e do nome do repositório do GitHub. Substitua mygithubuser pelo nome de usuário do GitHub, que você anotou anteriormente neste exercício. Além disso, especifique o nome correto do repositório GitHub.

    githubOrganizationName='mygithubuser'
    githubRepositoryName='toy-website-auto-review'
    
  2. Crie uma identidade de carga de trabalho para o fluxo de trabalho de implantações.

    applicationRegistrationDetails=$(az ad app create --display-name 'toy-website-auto-review')
    applicationRegistrationObjectId=$(echo $applicationRegistrationDetails | jq -r '.id')
    applicationRegistrationAppId=$(echo $applicationRegistrationDetails | jq -r '.appId')
    
    az ad app federated-credential create \
       --id $applicationRegistrationObjectId \
       --parameters "{\"name\":\"toy-website-auto-review\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:pull_request\",\"audiences\":[\"api://AzureADTokenExchange\"]}"
    
  1. Execute o código a seguir para definir as variáveis do nome de usuário e do nome do repositório do GitHub. Substitua mygithubuser pelo nome de usuário do GitHub, que você anotou anteriormente neste exercício. Além disso, especifique o nome correto do repositório GitHub.

    $githubOrganizationName = 'mygithubuser'
    $githubRepositoryName = 'toy-website-auto-review'
    
  2. Crie uma identidade de carga de trabalho para o fluxo de trabalho de implantações.

    $applicationRegistration = New-AzADApplication -DisplayName 'toy-website-auto-review'
    New-AzADAppFederatedCredential `
       -Name 'toy-website-auto-review' `
       -ApplicationObjectId $applicationRegistration.Id `
       -Issuer 'https://token.actions.githubusercontent.com' `
       -Audience 'api://AzureADTokenExchange' `
       -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):pull_request"
    

Conceder acesso à identidade da carga de trabalho à sua assinatura

Em seguida, crie um grupo de recursos para o site da Web. Esse processo também concederá à identidade de carga de trabalho a função Colaborador no grupo de recursos, o que permite que o pipeline seja implantado nesse grupo.

  1. No terminal do Visual Studio Code, execute os seguintes comandos da CLI do Azure:

    az ad sp create --id $applicationRegistrationObjectId
    az role assignment create \
       --assignee $applicationRegistrationAppId \
       --role Contributor
    
  1. No terminal do Visual Studio Code, execute os seguintes comandos do Azure PowerShell:

    New-AzADServicePrincipal -AppId $applicationRegistration.AppId
    New-AzRoleAssignment `
       -ApplicationId $applicationRegistration.AppId `
       -RoleDefinitionName Contributor
    

Preparar segredos do GitHub

Execute o seguinte código para mostrar os valores que você precisa criar como segredos do GitHub:

echo "AZURE_CLIENT_ID: $applicationRegistrationAppId"
echo "AZURE_TENANT_ID: $(az account show --query tenantId --output tsv)"
echo "AZURE_SUBSCRIPTION_ID: $(az account show --query id --output tsv)"
$azureContext = Get-AzContext
Write-Host "AZURE_CLIENT_ID: $($applicationRegistration.AppId)"
Write-Host "AZURE_TENANT_ID: $($azureContext.Tenant.Id)"
Write-Host "AZURE_SUBSCRIPTION_ID: $($azureContext.Subscription.Id)"

Anote o valor da ID do aplicativo para o AZURE_CLIENT_ID. Você poderá usar esse valor ao limpar recursos quando terminar de usar este módulo.

Criar segredos do GitHub

Você criou uma identidade de carga de trabalho e concedeu a ela permissão para implantar na assinatura. Agora, crie segredos no GitHub Actions.

  1. No navegador, navegue até o repositório do GitHub.

  2. Selecione Configurações>Segredos e variáveis>Ações.

  3. Selecione Novo segredo de repositório.

    Captura de tela da interface do GitHub mostrando a página

  4. Nomeie o segredo como AZURE_CLIENT_ID.

  5. No campo Valor, cole o GUID da primeira linha da saída do terminal. Não inclua AZURE_CLIENT_ID, dois-pontos ou espaços no valor.

  6. Selecione Adicionar segredo.

    Captura de tela da interface do GitHub mostrando a página

  7. Repita o processo para criar os segredos para AZURE_TENANT_ID e AZURE_SUBSCRIPTION_ID, copiando os valores dos campos correspondentes na saída do terminal.

  8. Verifique se a lista de segredos agora mostra os três segredos.

    Captura de tela da interface do GitHub mostrando a lista de segredos.