Använda källkontrollsintegrering

Integration av källkontroll i Azure Automation stöder enkelriktad synkronisering från din lagringsplats för källkontroll. Med källkontroll kan du hålla dina runbooks i ditt Automation-konto uppdaterade med skript på din GitHub- eller Azure DevOps-lagringsplats för källkontroll. Den här funktionen gör det enkelt att höja upp kod som har testats i utvecklingsmiljön till ditt Automation-konto för produktion.

Med källkontrollintegrering kan du enkelt samarbeta med ditt team, spåra ändringar och återställa till tidigare versioner av dina runbooks. Med källkontroll kan du till exempel synkronisera olika grenar i källkontrollen med dina automationskonton för utveckling, testning och produktion.

Kommentar

Synkroniseringsjobb för källkontroll körs under användarens Automation-konto och faktureras med samma hastighet som andra Automation-jobb. Dessutom stöder Inte Azure Automation-jobb MFA (Multi-Factor Authentication).

Typer av källkontroll

Azure Automation har stöd för tre typer av källkontroll:

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

Förutsättningar

Kommentar

Azure Automation stöder både systemtilldelad och användartilldelad hanterad identitet med källkontrollintegrering. Om du vill använda en användartilldelad hanterad identitet skapar du en automationsvariabel AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID med värdet som klient-ID för den användartilldelade identiteten. Den användartilldelade ska vara aktiverad Managed Identity och ha deltagaråtkomst till automationskontot. Om den här variabeln inte skapas använder vi som standard den systemtilldelade identiteten.

Screenshot that displays the user-assigned Managed Identity.

Om du har både ett Kör som-konto och en hanterad identitet aktiverad ges den hanterade identiteten företräde.

Viktigt!

Kör som-kontot för Azure Automation upphör den 30 september 2023 och ersätts med hanterade identiteter. Innan det datumet måste du migrera från ett Kör som-konto till hanterade identiteter.

Kommentar

Enligt den här Azure DevOps-dokumentationen är programåtkomst från tredje part via OAuth-principen standard inaktiverad för alla nya organisationer. Så om du försöker konfigurera källkontroll i Azure Automation med Azure Devops (Git) som källkontrolltyp utan att aktivera programåtkomst från tredje part via OAuth under panelen Principer i organisationen Inställningar i Azure DevOps kan det hända att SourceControl securityToken är ogiltigt fel. Därför bör du undvika det här felet genom att först aktivera programåtkomst från tredje part via OAuth under panelen Principer för organisations- Inställningar i Azure DevOps.

Konfigurera källkontroll

Det här avsnittet beskriver hur du konfigurerar källkontroll för ditt Automation-konto. Du kan använda antingen Azure-portalen eller PowerShell.

Tilldela hanterad identitet till deltagarrollen

I det här exemplet används Azure PowerShell för att visa hur du tilldelar rollen Deltagare i prenumerationen till Azure Automation-kontoresursen.

  1. Öppna en PowerShell-konsol med utökade privilegier.

  2. Logga in på Azure genom att köra kommandot Connect-AzAccount.

  3. Om du vill tilldela den hanterade identiteten till rollen Deltagare kör du följande kommando.

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

Konfigurera källkontroll i Azure-portalen

Använd den här proceduren för att konfigurera källkontroll med hjälp av Azure-portalen.

  1. I ditt Automation-konto väljer du Källkontroll och klickar på Lägg till.

    Select source control

  2. Välj Typ av källkontroll och klicka sedan på Autentisera.

  3. Ett webbläsarfönster öppnas och du uppmanas att logga in. Följ anvisningarna för att slutföra autentiseringen.

  4. På sidan Sammanfattning av källkontroll använder du fälten för att fylla i de källkontrollegenskaper som definieras nedan. Klicka på Spara när du är klar.

    Property Beskrivning
    Namn på källkontroll Ett eget namn för källkontrollen. Det här namnet får endast innehålla bokstäver och siffror.
    Typ av källkontroll Typ av mekanism för källkontroll. Tillgängliga alternativ är:
    * GitHub
    * Azure DevOps (Git)
    * Azure DevOps (TFVC)
    Lagringsplats Namnet på lagringsplatsen eller projektet. De första 200 lagringsplatserna hämtas. Om du vill söka efter en lagringsplats skriver du namnet i fältet och klickar på Sök på GitHub.
    Filial Gren som källfilerna ska hämtas från. Greninriktning är inte tillgängligt för TFVC-källkontrolltypen.
    Folder path Mapp som innehåller de runbooks som ska synkroniseras, till exempel /Runbooks. Endast runbooks i den angivna mappen synkroniseras. Rekursion stöds inte.
    Automatisk synkronisering1 Inställning som aktiverar eller inaktiverar automatisk synkronisering när en incheckning görs på källkontrolllagringsplatsen eller GitHub-lagringsplatsen.
    Publicera Runbook Inställningen På om runbooks publiceras automatiskt efter synkronisering från källkontrollen och Av annars.
    Description Text som anger ytterligare information om källkontrollen.

    1 Om du vill aktivera automatisk synkronisering när du konfigurerar källkontrollintegreringen med Azure DevOps måste du vara projektadministratör eller GitHub-lagringsplatsägare. Medarbetare kan bara konfigurera källkontroll utan automatisk synkronisering.
    Automatisk synkronisering fungerar inte med Automation Private Link. Om du aktiverar Private Link misslyckas webhooksanropen för källkontroll eftersom den ligger utanför nätverket.

    Screenshot that describes the Source control summary.

Kommentar

Inloggningen för källkontrolllagringsplatsen kan skilja sig från din inloggning för Azure-portalen. Kontrollera att du är inloggad med rätt konto för källkontrolllagringsplatsen när du konfigurerar källkontroll. Om du är osäker öppnar du en ny flik i webbläsaren, loggar ut från dev.azure.com, visualstudio.com eller github.com och försöker ansluta till källkontrollen igen.

Konfigurera källkontroll i PowerShell

Du kan också använda PowerShell för att konfigurera källkontroll i Azure Automation. Om du vill använda PowerShell-cmdletarna för den här åtgärden behöver du en personlig åtkomsttoken (PAT). Använd cmdleten New-AzAutomationSourceControl för att skapa källkontrollanslutningen. Den här cmdleten kräver en säker sträng för PAT. Information om hur du skapar en säker sträng finns i ConvertTo-SecureString.

Följande underavsnitt illustrerar hur PowerShell skapar källkontrollanslutningen för GitHub, Azure DevOps (Git) och Azure DevOps (TFVC).

Skapa källkontrollanslutning för GitHub

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

Skapa källkontrollanslutning för Azure DevOps (Git)

Kommentar

Azure DevOps (Git) använder en URL som kommer åt dev.azure.com i stället för visualstudio.com, som används i tidigare format. Det äldre URL-formatet https://<accountname>.visualstudio.com/<projectname>/_git/<repositoryname> är inaktuellt men stöds fortfarande. Det nya formatet är att föredra.

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"

Skapa källkontrollanslutning för Azure DevOps (TFVC)

Kommentar

Azure DevOps (TFVC) använder en URL som kommer åt dev.azure.com i stället för visualstudio.com, som används i tidigare format. Det äldre URL-formatet https://<accountname>.visualstudio.com/<projectname>/_versionControl är inaktuellt men stöds fortfarande. Det nya formatet är att föredra.

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

Behörigheter för personlig åtkomsttoken (PAT)

Källkontroll kräver vissa minimibehörigheter för PAT:er. Följande underavsnitt innehåller de minsta behörigheter som krävs för GitHub och Azure DevOps.

Minsta PAT-behörigheter för GitHub

I följande tabell definieras de minsta PAT-behörigheter som krävs för GitHub. Mer information om hur du skapar en PAT i GitHub finns i Skapa en personlig åtkomsttoken för kommandoraden.

Scope Description
repo
repo:status Åtkomst till incheckningsstatus
repo_deployment Åtkomstdistributionsstatus
public_repo Åtkomst till offentliga lagringsplatser
repo:invite Åtkomst till lagringsplatsinbjudningar
security_events Läsa och skriva säkerhetshändelser
admin:repo_hook
write:repo_hook Skriva lagringsplatskrokar
read:repo_hook Läs lagringsplatsens krokar
Minsta PAT-behörigheter för Azure DevOps

I följande lista definieras de minsta PAT-behörigheter som krävs för Azure DevOps. Mer information om hur du skapar en PAT i Azure DevOps finns i Autentisera åtkomst med personliga åtkomsttoken.

Definitionsområde Åtkomsttyp
Code Lästa
Project and team Läsa
Identity Läsa
User profile Läsa
Work items Lästa
Service connections Läsa, fråga, hantera1

1 Behörigheten Service connections krävs endast om du har aktiverat autosynkronisering.

Synkronisera med källkontroll

Följ de här stegen för att synkronisera med källkontrollen.

  1. Välj källan i tabellen på sidan Källkontroll.

  2. Klicka på Starta synkronisering för att starta synkroniseringsprocessen.

  3. Visa status för det aktuella synkroniseringsjobbet eller tidigare genom att klicka på fliken Synkronisera jobb .

  4. I listrutan Källkontroll väljer du en mekanism för källkontroll.

    Sync status

  5. Om du klickar på ett jobb kan du visa jobbutdata. Följande exempel är utdata från ett källkontrollssynkroniseringsjobb.

    ===================================================================
    
    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. Ytterligare loggning är tillgänglig genom att välja Alla loggar på sidan Sammanfattning av källkontrollsynkroniseringsjobb. Dessa ytterligare loggposter kan hjälpa dig att felsöka problem som kan uppstå när du använder källkontroll.

Koppla från källkontroll

Så här kopplar du från en källkontrolllagringsplats:

  1. Kontroll med öppen källkod under Konto Inställningar i ditt Automation-konto.

  2. Välj den källkontrollmekanism som du vill ta bort.

  3. På sidan Sammanfattning av källkontroll klickar du på Ta bort.

Hantera kodningsproblem

Om flera personer redigerar runbooks i källkontrolllagringsplatsen med olika redigerare kan kodningsproblem uppstå. Mer information om den här situationen finns i Vanliga orsaker till kodningsproblem.

Uppdatera PAT

För närvarande kan du inte använda Azure-portalen för att uppdatera PAT i källkontrollen. När din PAT har upphört att gälla eller återkallats kan du uppdatera källkontrollen med en ny åtkomsttoken på något av följande sätt:

Nästa steg