Uso de la integración del control de código fuente

La integración del control de código fuente en Azure Automation permite la sincronización en una sola dirección desde el repositorio de control de código fuente. El control de código fuente permite mantener actualizados los runbooks de la cuenta de Automation con los scripts del repositorio de control de código fuente de GitHub o de Azure DevOps. Esta característica facilita la promoción de código que se ha probado en el entorno de desarrollo a la cuenta de Automation de producción.

La integración del control de código fuente permite colaborar fácilmente con el equipo, realizar el seguimiento de los cambios y revertir a versiones anteriores de los runbooks. Por ejemplo, el control de código fuente permite sincronizar distintas ramas de control de código fuente con las cuentas de Automation de desarrollo, prueba o producción.

Nota:

Los trabajos de sincronización de control de código fuente se ejecutan en la cuenta de Automation del usuario y se facturan con la misma tarifa que otros trabajos de Automation. Además, los trabajos de Azure Automation no admiten MFA (Multi-Factor Authentication).

Tipos de control de código fuente

Azure Automation admite tres tipos de control de código fuente:

  • GitHub
  • Azure DevOps (Git)
  • Azure DevOps (TFVC)

Requisitos previos

Nota:

Azure Automation admite tanto la identidad administrada asignada por el sistema como la asignada por el usuario con la integración del control de código fuente. Para usar una identidad administrada asignada por el usuario, cree una variable de automatización AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID con el valor como el id. de cliente de la identidad asignada por el usuario. La Managed Identity asignada por el usuario se debe habilitar y debe tener acceso de colaborador a la cuenta de Automation. De manera predeterminada, si esta variable no está creada, usamos la identidad asignada por el sistema.

Screenshot that displays the user-assigned Managed Identity.

Si tiene habilitadas la cuenta de ejecución y la identidad administrada, se le da preferencia a la identidad administrada.

Importante

La cuenta de ejecución de Azure Automation se retirará el 30 de septiembre de 2023 y la reemplazarán identidades administradas. Antes de esa fecha, tiene que migrar desde una cuenta de ejecución a identidades administradas.

Nota:

Según esta documentación de Azure DevOps, la directiva Acceso a la aplicación de terceros a través de OAuth está desactivada de forma predeterminada para todas las organizaciones nuevas. Por lo tanto, si intenta configurar el control de código fuente en Azure Automation con Azure Devops (Git) como tipo de control de código fuente sin habilitar Acceso a la aplicación de terceros a través de OAuth en el icono Directivas de Configuración de la organización en Azure DevOps, es posible que obtenga un error Token de seguridad SourceControl no válido. Por lo tanto, para evitar este error, asegúrese de habilitar primero la opción Acceso a la aplicación de terceros a través de OAuth en el icono Directivas de Configuración de la organización en Azure DevOps.

Configurar el control de código fuente

En esta sección se explica cómo configurar el control de código fuente para la cuenta de Automation. Puede usar Azure Portal o PowerShell.

Asignación de una identidad administrada al rol Colaborador

En este ejemplo se usa Azure PowerShell para mostrar cómo asignar el rol Colaborador en la suscripción al recurso de la cuenta de Azure Automation.

  1. Abra una consola de PowerShell con privilegios elevados.

  2. Inicie sesión en Azure para ejecutar el comando Connect-AzAccount.

  3. Para asignar la identidad administrada al rol Colaborador, ejecute el siguiente comando.

    New-AzRoleAssignment `
        -ObjectId <automation-Identity-Object(Principal)-Id> `
        -Scope "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}" `
        -RoleDefinitionName "Contributor"
    

Configuración del control de código fuente en Azure Portal

Utilice este procedimiento para configurar el control de código fuente mediante Azure Portal.

  1. En la cuenta de Automation, seleccione Control de código fuente y haga clic en Agregar.

    Select source control

  2. Elija Tipo de control de código fuente y, a continuación, haga clic en Autenticar.

  3. Se abre una ventana del explorador y se le pide que inicie sesión. Siga las indicaciones para completar la autenticación.

  4. En la página Resumen del control de código fuente, utilice los campos para rellenar las propiedades del control de código fuente definidas a continuación. Haga clic en Guardar cuando termine.

    Propiedad Descripción
    Nombre del control de código fuente Nombre descriptivo del control de código fuente. Este nombre solo puede contener letras y números.
    Tipo de control de código fuente Tipo de mecanismo de control de código fuente. Las opciones disponibles son:
    * GitHub
    * Azure DevOps (Git)
    * Azure DevOps (TFVC)
    Repositorio Nombre del repositorio o proyecto. Se recuperan los primeros 200 repositorios. Para buscar un repositorio, escriba el nombre en el campo y haga clic en Search on GitHub (Buscar en GitHub).
    Rama Rama de la que se van a extraer los archivos de código fuente. No se permite especificar una rama para el tipo de control de código fuente TFVC.
    Folder path (Ruta de acceso a la carpeta) Carpeta que contiene los runbooks que se van a sincronizar; por ejemplo, /Runbooks. Solo se sincronizan los runbooks de la carpeta especificada. No se admite la recursividad.
    Sincronización automática1 Opción que activa o desactiva la sincronización automática cuando se realiza una confirmación en el repositorio de control de código fuente o en el de GitHub.
    Publicar runbook Se debe establecer en Activado si los runbooks se publican automáticamente después de la sincronización desde el control de código fuente y en Desactivado de otro modo.
    Descripción Texto que especifica información adicional sobre el control de código fuente.

    1 Para habilitar la sincronización automática al configurar la integración del control de código fuente con Azure DevOps, debe ser un administrador del proyecto o el propietario del repositorio de GitHub. Los colaboradores solo pueden configurar el control de código fuente sin sincronización automática.La sincronización automática de
    no funciona con Private Link de Automation. Si habilita Private Link, se producirá un error en las invocaciones de webhook de control de código fuente, ya que está fuera de la red.

    Screenshot that describes the Source control summary.

Nota:

El inicio de sesión en el repositorio del control de código fuente podría ser diferente al inicio de sesión en Azure Portal. Al configurar el control de código fuente, asegúrese de que ha iniciado sesión con la cuenta correcta en el repositorio del control de código fuente. Si tiene dudas, abra una nueva pestaña en el explorador, cierre la sesión de dev.azure.com, visualstudio.com o github.com, y vuelva a intentar establecer la conexión con el control de código fuente.

Configuración del control de código fuente en PowerShell

También puede usar PowerShell para configurar el control de código fuente en Azure Automation. Para usar cmdlets de PowerShell para esta operación, necesita un token de acceso personal (PAT). Utilice el cmdlet New-AzAutomationSourceControl para crear la conexión al control de código fuente. Este cmdlet requiere una cadena segura para el PAT. Para obtener información sobre cómo crear una cadena segura, consulte ConvertTo-SecureString.

En las subsecciones siguientes se muestra la creación de PowerShell de la conexión del control de código fuente para GitHub, Azure DevOps (Git) y Azure DevOps (TFVC).

Creación de la conexión del control de código fuente para GitHub

New-AzAutomationSourceControl -Name SCGitHub -RepoUrl https://github.com/<accountname>/<reponame>.git -SourceType GitHub -FolderPath "/MyRunbooks" -Branch main -AccessToken <secureStringofPAT> -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName>

Creación de la conexión del control de código fuente para Azure DevOps (Git)

Nota:

Azure DevOps (Git) usa una dirección URL que accede a dev.azure.com en lugar de visualstudio.com, que se usaba en formatos anteriores. El formato de dirección URL anterior https://<accountname>.visualstudio.com/<projectname>/_git/<repositoryname> está en desuso pero todavía se admite, aunque se prefiere el nuevo formato.

New-AzAutomationSourceControl -Name SCReposGit -RepoUrl https://dev.azure.com/<accountname>/<adoprojectname>/_git/<repositoryname> -SourceType VsoGit -AccessToken <secureStringofPAT> -Branch main -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName> -FolderPath "/Runbooks"

Creación de la conexión del control de código fuente para Azure DevOps (TFVC)

Nota:

Azure DevOps (TFVC) usa una dirección URL que accede a dev.azure.com en lugar de visualstudio.com, que se usaba en formatos anteriores. El formato de dirección URL anterior https://<accountname>.visualstudio.com/<projectname>/_versionControl está en desuso pero todavía se admite, aunque se prefiere el nuevo formato.

New-AzAutomationSourceControl -Name SCReposTFVC -RepoUrl https://dev.azure.com/<accountname>/<adoprojectname>/_git/<repositoryname> -SourceType VsoTfvc -AccessToken <secureStringofPAT> -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName> -FolderPath "/Runbooks"

Permisos del token de acceso personal (PAT)

El control de código fuente requiere algunos permisos mínimos para los tokens de acceso personal. Las subsecciones siguientes contienen los permisos mínimos necesarios para GitHub y Azure DevOps.

Permisos mínimos de PAT para GitHub

En la tabla siguiente se definen los permisos mínimos necesarios de PAT para GitHub. Para más información sobre cómo crear un token de acceso personal en GitHub, consulte Creación de un token de acceso personal para la línea de comandos.

Ámbito Descripción
repo
repo:status Acceder al estado de confirmación
repo_deployment Acceder al estado de implementación
public_repo Acceder a los repositorios públicos
repo:invite Acceder a invitaciones de repositorio
security_events Leer y escribir eventos de seguridad
admin:repo_hook
write:repo_hook Escribir los enlaces de repositorio
read:repo_hook Leer los enlaces de repositorio
Permisos mínimos de PAT para Azure DevOps

En la tabla siguiente se definen los permisos mínimos necesarios de PAT para Azure DevOps. Para más información sobre cómo crear un token de acceso personal en Azure DevOps, consulte Autenticación del acceso con tokens de acceso personal.

Ámbito Tipo de acceso
Code Lectura
Project and team Lectura
Identity Lectura
User profile Lectura
Work items Lectura
Service connections Leer, consultar, administrar1

1 El permiso Service connections solo es necesario si ha habilitado la sincronización automática.

Sincronización con el control de código fuente

Siga estos pasos para sincronizar con el control de código fuente.

  1. Seleccione el código fuente en la tabla de la página Control de código fuente.

  2. Haga clic en Iniciar sincronización para iniciar el proceso de sincronización.

  3. Para ver el estado del trabajo de sincronización actual o de los anteriores, haga clic en la pestaña Trabajos de sincronización.

  4. En el menú desplegable Control de código fuente, seleccione un mecanismo de control de código fuente.

    Sync status

  5. Al hacer clic en un trabajo, verá la salida del trabajo. El siguiente es un ejemplo de la salida de un trabajo de sincronización de control de código fuente.

    ===================================================================
    
    Azure Automation Source Control.
    Supported runbooks to sync: PowerShell Workflow, PowerShell Scripts, DSC Configurations, Graphical, and Python 2.
    
    Setting AzEnvironment.
    
    Getting AzureRunAsConnection.
    
    Logging in to Azure...
    
    Source control information for syncing:
    
    [Url = https://ContosoExample.visualstudio.com/ContosoFinanceTFVCExample/_versionControl] [FolderPath = /Runbooks]
    
    Verifying url: https://ContosoExample.visualstudio.com/ContosoFinanceTFVCExample/_versionControl
    
    Connecting to VSTS...
    
    Source Control Sync Summary:
    
    2 files synced:
     - ExampleRunbook1.ps1
     - ExampleRunbook2.ps1
    
    ==================================================================
    
    
  6. Puede encontrar opciones de registro adicionales si selecciona Todos los registros en la página Resumen del trabajo de sincronización del control de código fuente. Estas entradas de registro adicionales pueden ayudar a solucionar los problemas que pueden surgir al usar el control de código fuente.

Desconexión del control de código fuente

Para desconectarse de un repositorio de control de código fuente:

  1. Abra Control de código fuente en Configuración de la cuenta de la cuenta de Automation.

  2. Seleccione el mecanismo de control de código fuente que desea eliminar.

  3. En la página Resumen del trabajo de sincronización del control de código fuente, haga clic en Eliminar.

Control de los problemas de codificación

Si varias personas editan runbooks en el repositorio de control de código fuente con diferentes editores, pueden darse problemas de codificación. Para más información sobre esta situación, consulte Causas comunes de problemas de codificación.

Actualización del token de acceso personal

Actualmente, no puede usar Azure Portal para actualizar el token de acceso personal en el control de código fuente. Después de que el token de acceso personal haya expirado o se haya revocado, podrá actualizar el control de código fuente con un nuevo token de acceso de las siguientes maneras:

Pasos siguientes