Exercício – Configurar seu ambiente
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:
Selecione Usar este modelo>Criar um repositório.
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.
Digite um nome para seu novo projeto, como toy-website-auto-review.
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.
Selecione Criar 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.
Selecione Código e o ícone de cópia.
Abra o Visual Studio Code.
Abra uma janela do terminal do Visual Studio Code selecionando Terminal>Novo Terminal. Geralmente, a janela é aberta na parte inferior da tela.
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
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
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.
No terminal no Visual Studio Code, execute o seguinte comando para entrar no Azure:
az login
No navegador que é aberto, entre em sua conta do Azure.
No terminal do Visual Studio Code, entre no Azure executando o seguinte comando:
Connect-AzAccount
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.
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'
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\"]}"
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'
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.
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
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.
No navegador, navegue até o repositório do GitHub.
Selecione Configurações>Segredos e variáveis>Ações.
Selecione Novo segredo de repositório.
Nomeie o segredo como AZURE_CLIENT_ID.
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.Selecione Adicionar segredo.
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.
Verifique se a lista de segredos agora mostra os três segredos.