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 começar a publicar o código Bicep reutilizável da empresa de brinquedos, você precisa configurar o ambiente. Nesta seção, você verifica se os ambientes do Azure e do GitHub estão configurados para concluir o restante deste módulo.

Para atingir esses objetivos, você vai:

  • Configure um repositório GitHub para este módulo.
  • Clone o repositório para o seu computador.
  • Criar um grupo de recursos no Azure.
  • Crie um segredo no GitHub.

Obter o repositório GitHub

Aqui, você criará um repositório do GitHub com base em um repositório de modelo. 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 caminho 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, siga estas etapas para criar um repositório com base no modelo:

  1. Entre no GitHub.

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

    Captura de tela da interface do GitHub que mostra o repositório de modelos. O botão para usar o modelo está realçado.

  3. Para Proprietário, selecione sua conta do GitHub.

  4. Insira um Nome do repositório para o novo projeto, como toy-reusable.

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

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

  6. Selecione Criar repositório.

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

Importante

O exercício final deste módulo contém etapas de limpeza importantes. Siga as etapas de limpeza mesmo que não conclua este módulo.

Clonar o repositório

Agora que você tem uma cópia do repositório de modelo em sua conta, poderá clonar esse repositório localmente para começar a trabalhar nele.

  1. Selecione Código e, em seguida, selecione o ícone Copiar URL para a área de transferência.

    Captura de tela da interface do GitHub que mostra o novo repositório. O botão de cópia da URL do repositório está 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 no qual você deseja clonar o repositório GitHub em seu computador local. Por exemplo, para clonar o repositório na pasta repositórios, execute o seguinte comando:

    cd repositories
    
  5. Digite git clone e cole a URL que você já copiou e é parecida com esta:

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

    code --reuse-window toy-reusable
    

Entrar no Azure

Para trabalhar com grupos de recursos no Azure, entre na sua conta do Azure usando o terminal do Visual Studio Code. Verifique se você instalou as ferramentas CLI do Azure e a extensão da conta do Azure para o Visual Studio Code.

  1. No menu Terminal, selecione Novo Terminal. A janela do terminal geralmente é aberta na metade inferior da tela.

    O shell padrão normalmente é pwsh, conforme mostrado no lado direito da janela do terminal.

    Captura de tela da janela do terminal do Visual Studio Code, em que pwsh é mostrado como a opção de shell.

  2. Selecione a lista suspensa Perfil de Inicialização e, em seguida, selecione Azure Cloud Shell (Bash).

    Captura de tela da janela do terminal do Visual Studio Code. A lista suspensa do shell do terminal e o item de menu do Azure Cloud Shell (Bash) são mostrados.

    Um novo shell é aberto.

Entrar no Azure usando a CLI do Azure

  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.

Para trabalhar com grupos de recursos no Azure, entre na sua conta do Azure usando o terminal do Visual Studio Code. Verifique se você instalou o Azure PowerShell e a extensão da conta do Azure para Visual Studio Code.

  1. No menu Terminal, selecione Novo Terminal. A janela do terminal geralmente é aberta na metade inferior da tela.

    O shell padrão normalmente é pwsh, conforme mostrado no lado direito da janela do terminal.

    Captura de tela da janela do terminal do Visual Studio Code, em que pwsh é mostrado como a opção de shell.

  2. Selecione a lista suspensa Perfil de Inicialização e, em seguida, selecione Azure Cloud Shell (PowerShell).

    Captura de tela da janela do terminal do Visual Studio Code. A lista suspensa do shell do terminal e o item de menu do Azure Cloud Shell (PowerShell) são mostrados.

    Um novo shell é aberto.

Entrar no Azure usando o Azure PowerShell

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

    Connect-AzAccount -UseDeviceAuthentication
    
  2. Siga as instruções de comando para entrar em sua conta do Azure.

Criar uma identidade de carga de trabalho

Em seguida, crie uma identidade de carga de trabalho no Microsoft Entra ID para o fluxo de trabalho de implantação.

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 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 para 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-reusable'
    
  2. Crie uma identidade de carga de trabalho para o fluxo de trabalho de implantações.

    applicationRegistrationDetails=$(az ad app create --display-name 'toy-reusable')
    applicationRegistrationObjectId=$(echo $applicationRegistrationDetails | jq -r '.id')
    applicationRegistrationAppId=$(echo $applicationRegistrationDetails | jq -r '.appId')
    
    az ad app federated-credential create \
       --id $applicationRegistrationObjectId \
       --parameters "{\"name\":\"toy-reusable-branch\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:ref:refs/heads/main\",\"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-reusable'
    
  2. Crie uma identidade de carga de trabalho para o fluxo de trabalho de implantações.

    $applicationRegistration = New-AzADApplication -DisplayName 'toy-reusable'
    New-AzADAppFederatedCredential `
       -Name 'toy-reusable-branch' `
       -ApplicationObjectId $applicationRegistration.Id `
       -Issuer 'https://token.actions.githubusercontent.com' `
       -Audience 'api://AzureADTokenExchange' `
       -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):ref:refs/heads/main"
    

Criar um grupo de recursos no Azure e conceder acesso à identidade da carga de trabalho

Em seguida, crie um grupo de recursos para seu site. 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.

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

resourceGroupResourceId=$(az group create --name ToyReusable --location westus3 --query id --output tsv)

az ad sp create --id $applicationRegistrationObjectId
az role assignment create \
  --assignee $applicationRegistrationAppId \
  --role Contributor \
  --scope $resourceGroupResourceId

No terminal do Visual Studio Code, execute os seguintes comandos do Azure PowerShell:

$resourceGroup = New-AzResourceGroup -Name ToyReusable -Location westus3

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

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 um grupo de recursos no qual ela pode ser implantada. Agora, crie segredos no GitHub Actions.

  1. No navegador, acesse 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 'Segredos'. O botão

  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 'Novo Segredo'. O nome e o valor são inseridos e o botão

  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.