Ejercicio: Configuración del entorno

Completado

Importante

Para realizar este ejercicio, se necesita una suscripción de Azure propia y puede que se apliquen cargos. Si aún no tiene una suscripción de Azure, cree una cuenta gratuita antes de comenzar.

Antes de configurar los flujos de trabajo de la solicitud de cambios de su empresa de juguetes, debe configurar el entorno.

En esta unidad, se asegurará de que los entornos de Azure y GitHub estén configurados para que pueda completar el resto de este módulo correctamente.

Para cumplir estos objetivos, tendrá que:

  • Configurar un repositorio de GitHub para este módulo.
  • Clonar el repositorio en el equipo.
  • Cree una identidad de carga de trabajo en Microsoft Entra ID.
  • Crear un secreto en GitHub.

Obtención del repositorio de GitHub

En esta sección, configurará el repositorio de GitHub para completar el resto de este módulo mediante la creación de un nuevo repositorio basado en un repositorio de plantillas. En el repositorio de plantillas se incluyen los archivos que necesita para empezar con este módulo.

Los módulos de esta ruta de aprendizaje forman parte de una progresión. Con fines de aprendizaje, cada módulo tiene asociado un repositorio de plantillas de GitHub.

Sugerencia

Incluso si ya ha completado el módulo anterior en la ruta de aprendizaje, siga estas instrucciones para crear un repositorio y asígnele un nombre nuevo.

Inicio desde el repositorio de plantillas

Ejecute una plantilla que configura el repositorio de GitHub.

En el sitio de GitHub, haga lo siguiente para crear un repositorio a partir de la plantilla:

  1. Seleccione Usar esta plantilla>Crear un nuevo repositorio.

    Captura de pantalla de la interfaz de GitHub en la que se muestra el repositorio de plantillas, con el botón

  2. Anote el nombre de usuario o el nombre de la organización de GitHub. En el ejemplo, el nombre de usuario de GitHub es mygithubuser. Necesitará este nombre pronto.

  3. Escribe un nombre para el proyecto nuevo, como toy-website-auto-review.

  4. Seleccione la opción Público.

    Al crear sus propios repositorios, es posible que quiera hacerlos privados. En este módulo, trabajará con características de GitHub que funcionan solo con repositorios públicos y cuentas de GitHub Enterprise.

  5. Seleccione Create repository (Crear repositorio).

    Captura de pantalla de la interfaz de GitHub en la que se muestra la página de creación del repositorio.

Clonación del repositorio

Ya tiene una copia del repositorio de plantillas en su propia cuenta. Clone este repositorio localmente para que pueda empezar a trabajar en él.

  1. Seleccione Código y, después, el icono de copia.

    Captura de pantalla de la interfaz de GitHub en la que se muestra el repositorio nuevo, con el botón Copiar la dirección URL del repositorio resaltado.

  2. Abra Visual Studio Code.

  3. En Visual Studio Code, abra una nueva ventana del terminal. Para ello, seleccione Terminal>Nuevo terminal. La ventana se suele abrir en la parte inferior de la pantalla.

  4. En el terminal, vaya al directorio donde desea clonar el repositorio de GitHub en el equipo local. Por ejemplo, para clonar el repositorio en la carpeta toy-website-auto-review, ejecuta el siguiente comando:

    cd toy-website-auto-review
    
  5. Escriba git clone y pegue la dirección URL que copió antes. El resultado debe ser parecido a lo siguiente:

    git clone https://github.com/mygithubuser/toy-website-auto-review.git
    
  6. Vuelva a abrir Visual Studio Code en la carpeta del repositorio ejecutando el comando siguiente en el terminal de Visual Studio Code:

    code -r toy-website-auto-review
    

Inicio de sesión en Azure

Ahora que ha clonado el repositorio localmente en el equipo, se iniciará sesión en su entorno de Azure. Utiliza tu cuenta de Azure para crear una identidad de carga de trabajo para los flujos de trabajo de Acciones de GitHub que se usan.

  1. En el terminal de Visual Studio Code, ejecute el siguiente comando para iniciar sesión en Azure:

    az login
    
  2. En el explorador que se abre, inicie sesión en su cuenta de Azure.

  1. En el terminal de Visual Studio Code, inicie sesión en Azure mediante el siguiente comando:

    Connect-AzAccount
    
  2. En el explorador que se abre, inicie sesión en su cuenta de Azure.

Creación de una identidad de carga de trabajo

Más adelante en este módulo de Microsoft Learn, el flujo de trabajo de tu solicitud de incorporación de cambios creará grupos de recursos y recursos en la suscripción. Para implementar recursos, debe crear una identidad de carga de trabajo y concederle el rol de Colaborador en su suscripción.

Advertencia

La identidad de carga de trabajo que cree aquí tiene un alto nivel de acceso a su suscripción de Azure. Para evitar problemas accidentales, utilice una suscripción que no sea de producción. No ejecutes estos pasos en un entorno que contenga cualquiera de las cargas de trabajo de producción.

En los flujos de trabajo de validación de solicitudes de incorporación de cambios, le recomendamos que use una suscripción de Azure dedicada.

Para crear las identidades de carga de trabajo, los comandos de la CLI de Azure usan jq para analizar los datos de la salida JSON. Si no tiene jq instalado, puede usar Bash en Azure Cloud Shell para crear la identidad de carga de trabajo, el grupo de recursos y la asignación de roles y preparar los secretos de GitHub.

  1. Ejecute el código siguiente para definir variables para el nombre de usuario de GitHub y el nombre del repositorio. Asegúrese de reemplazar mygithubuser por el nombre de usuario de GitHub, que anotó anteriormente en este ejercicio. Asegúrese también de especificar el nombre correcto del repositorio de GitHub.

    githubOrganizationName='mygithubuser'
    githubRepositoryName='toy-website-auto-review'
    
  2. Cree una identidad de carga de trabajo para el flujo de trabajo de implementaciones.

    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. Ejecute el código siguiente para definir variables para el nombre de usuario de GitHub y el nombre del repositorio. Asegúrese de reemplazar mygithubuser por el nombre de usuario de GitHub, que anotó anteriormente en este ejercicio. Asegúrese también de especificar el nombre correcto del repositorio de GitHub.

    $githubOrganizationName = 'mygithubuser'
    $githubRepositoryName = 'toy-website-auto-review'
    
  2. Cree una identidad de carga de trabajo para el flujo de trabajo de implementaciones.

    $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"
    

Concesión de acceso a la identidad de carga de trabajo a la suscripción

A continuación, cree un grupo de recursos para el sitio web. Este proceso también concede a la identidad de carga de trabajo el rol Colaborador en el grupo de recursos, lo que permite que el flujo de trabajo se implemente en dicho grupo de recursos.

  1. Ejecute los siguientes comandos de la CLI de Azure en el terminal de Visual Studio Code:

    az ad sp create --id $applicationRegistrationObjectId
    az role assignment create \
       --assignee $applicationRegistrationAppId \
       --role Contributor
    
  1. Ejecute los siguientes comandos de Azure PowerShell en el terminal de Visual Studio Code:

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

Preparación de secretos de GitHub

Ejecute el código siguiente para mostrar los valores que necesita crear como secretos de 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 el valor del id. de aplicación para AZURE_CLIENT_ID. Puede usar ese valor cuando limpie los recursos cuando haya terminado con este módulo.

Creación de secretos de GitHub

Ha creado una identidad de carga de trabajo y le ha concedido permiso para implementarla en la suscripción. Ahora, cree un secreto en Acciones de GitHub.

  1. En el explorador, vaya al repositorio de GitHub.

  2. Seleccione Configuración>Secretos y variables>Acciones.

  3. Seleccione New repository secret (Nuevo secreto del repositorio).

    Captura de pantalla de la interfaz de GitHub que muestra la página

  4. Asigne el nombre AZURE_CLIENT_ID_TEST al secreto.

  5. En el campo Valor, pegue el GUID de la primera línea de la salida del terminal. No incluya AZURE_CLIENT_ID, los dos puntos ni los espacios en el valor.

  6. Seleccione Add secret (Agregar secreto).

    Captura de pantalla de la interfaz de GitHub que muestra la página

  7. Repita el proceso para crear los secretos para AZURE_TENANT_ID y AZURE_SUBSCRIPTION_ID, copiando los valores de los campos correspondientes en la salida del terminal.

  8. Compruebe que en la lista de secretos se muestran ahora los tres secretos.

    Captura de pantalla de la interfaz de GitHub en la que se muestra la lista de secretos.