使用原始檔控制整合

Azure 自動化中的原始檔控制整合支援來自原始檔控制存放庫的單向同步處理。 原始檔控制可讓您利用 GitHub 或 Azure DevOps 原始檔控制存放庫中的指令碼,將自動化帳戶中的 Runbook 保持在最新狀態。 此功能可讓您輕鬆地將已在開發環境中測試過的程式碼提升至生產環境自動化帳戶。

原始檔控制整合可讓您輕鬆地與小組共同作業、追蹤變更,以及回復至舊版的 Runbook。 例如,原始檔控制可讓您將原始檔控制中的不同分支與您的開發、測試和生產環境自動化帳戶同步處理。

注意

原始檔控制同步處理作業會在使用者的自動化帳戶之下執行,而且會以與其他自動化作業相同的費率計費。 此外,Azure 自動化工作不支援 MFA (多重要素驗證)。

原始檔控制類型

Azure 自動化支援三種類型的原始檔控制:

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

必要條件

注意

Azure 自動化支援系統指派和使用者指派的受控識別搭配原始檔控制整合。 若要使用使用者指派的受控識別,請建立具有值作為使用者指派身分識別之用戶端識別碼的自動化變數 AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID。 應啟用使用者指派 Managed Identity,且具有自動化帳戶的參與者存取權。 如果未建立此變數,則根據預設,我們會使用系統指派的身分識別。

Screenshot that displays the user-assigned Managed Identity.

如果您同時已啟用執行身分帳戶和受控識別,則會優先使用受控識別。

重要

Azure 自動化執行身分帳戶將於 2023 年 9 月 30 日淘汰,並將取代為受控識別。 在該日期之前,您必須從執行身分帳戶移轉到受控識別

注意

根據 Azure DevOps 文件,[透過 OAuth 原則的協力廠商應用程式存取] 預設會針對所有新組織關閉。 因此,如果您嘗試使用 Azure Devops (Git) 在 Azure 自動化中設定原始檔控制作為原始檔控制類型,而不啟用透過 Azure DevOps 中 [組織設定] 中 [原則] 圖格下的 [透過 OAuth 原則的協力廠商應用程式存取],則您可能會收到 SourceControl securityToken 無效的錯誤。 因此,若要避免此錯誤,請務必先在 Azure DevOps 中 [組織設定] 的 [原則] 圖格底下,啟用 [透過 OAuth 原則的協力廠商應用程式存取]

設定原始檔控制

此節說明如何設定自動化帳戶的原始檔控制。 您可以使用 Azure 入口網站或 PowerShell。

將受控識別指派給參與者角色

此範例會使用 Azure PowerShell 來示範如何將訂用帳戶中的參與者角色指派給 Azure 自動化帳戶資源。

  1. 以較高的權限開啟 PowerShell 主控台。

  2. 執行 Connect-AzAccount 命令以登入 Azure。

  3. 若要將受控識別指派給參與者角色,請執行下列命令。

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

設定 Azure 入口網站中的原始檔控制

您可以使用此程序來設定使用 Azure 入口網站的原始檔控制。

  1. 在您的自動化帳戶內,選取 [原始檔控制],然後按一下 [新增]

    Select source control

  2. 選擇 [原始檔控制類型],然後按一下 [驗證]

  3. 瀏覽器視窗隨即開啟,並提示您登入。 依照提示完成驗證。

  4. 在 [原始檔控制摘要] 頁面上,使用欄位填入下列定義的原始檔控制屬性。 完成後,請按一下 [儲存]

    屬性 說明
    原始檔控制名稱 原始檔控制的易記名稱。 此名稱只能包含字母與數字。
    原始檔控制類型 原始檔控制機制的類型。 可用的選項包括:
    * GitHub
    * Azure DevOps (Git)
    * Azure DevOps (TFVC)
    存放庫 存放庫或專案的名稱。 系統會擷取前 200 個存放庫。 若要搜尋存放庫,請在欄位中輸入名稱,然後按一下 [在 GitHub 上搜尋]
    分支 要從中提取原始程式檔的分支。 分支目標不適用於 TFVC 原始檔控制類型。
    Folder path 包含要同步處理之 Runbook 的資料夾,例如 /Runbooks。 只有指定資料夾中的 Runbook 會進行同步處理。 不支援遞迴。
    自動同步處理1 在原始檔控制存放庫中或 GitHub 存放庫中進行認可時,開啟或關閉自動同步處理的設定。
    發佈 Runbook 如果 Runbook 在從原始檔控制進行同步處理之後自動發行,則設定為 [開啟],否則為 [關閉]。
    描述 指定原始檔控制之其他詳細資料的文字。

    1 若要在設定與 Azure DevOps 的原始檔控制整合時啟用自動同步處理,您必須是專案系統管理員或 GitHub 存放庫擁有者。 共同作業者只能設定原始檔控制,而無法啟用自動同步處理。
    自動同步不適用於自動化 Private Link。 如果您啟用 Private Link,原始檔控制 Webhook 叫用將會失敗,因為其位於網路外部。

    Screenshot that describes the Source control summary.

注意

原始檔控制存放庫的登入可能會與 Azure 入口網站的登入不同。 確定您在設定原始檔控制時,使用了正確的原始檔控制存放庫帳戶登入。 如果有所疑慮,請在您的瀏覽器中開啟新的索引標籤並從 dev.azure.comvisualstudio.comgithub.com 登出,然後嘗試重新連線至原始檔控制。

在 PowerShell 中設定原始檔控制

您也可以使用 PowerShell 來設定 Azure 自動化中的原始檔控制。 若要使用 PowerShell Cmdlet 進行此作業,您需要個人存取權杖 (PAT)。 使用 New-AzAutomationSourceControl \(英文\) Cmdlet 來建立原始檔控制連線。 此 Cmdlet 需要安全的 PAT 字串。 若要了解如何建立安全字串,請參閱 ConvertTo-SecureString

下列小節說明如何建立適用於 GitHub、Azure DevOps (Git) 和 Azure DevOps (TFVC) 之原始檔控制連線的 PowerShell。

建立適用於 GitHub 的原始檔控制連線

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

建立適用於 Azure DevOps (Git) 的原始檔控制連線

注意

Azure DevOps (Git) 會使用可存取 dev.azure.com 而不是 visualstudio.com (用於舊版格式) 的 URL。 舊版的 URL 格式 https://<accountname>.visualstudio.com/<projectname>/_git/<repositoryname> 已被取代,但仍受到支援。 建議採用新格式。

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"

建立適用於 Azure DevOps (TFVC) 的原始檔控制連線

注意

Azure DevOps (TFVC) 會使用可存取 dev.azure.com 而不是 visualstudio.com (用於舊版格式) 的 URL。 舊版的 URL 格式 https://<accountname>.visualstudio.com/<projectname>/_versionControl 已被取代,但仍受到支援。 建議採用新格式。

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

個人存取權杖 (PAT) 權限

原始檔控制需要一些 PAT 的最低權限。 下列小節包含 GitHub 和 Azure DevOps 所需的最低權限。

GitHub 的最低 PAT 權限

下表定義 GitHub 所需的最低 PAT 權限。 如需在 GitHub 中建立 PAT 的詳細資訊,請參閱建立命令列的個人存取權杖 \(英文\)。

影響範圍 描述
repo
repo:status 存取認可狀態
repo_deployment 存取部署狀態
public_repo 存取公用存放庫
repo:invite 存取存放庫邀請
security_events 讀取和寫入安全性事件
admin:repo_hook
write:repo_hook 寫入存放庫勾點
read:repo_hook 讀取存放庫勾點
Azure DevOps 的最低 PAT 權限

下列清單定義 Azure DevOps 所需的最低 PAT 權限。 如需在 Azure DevOps 中建立 PAT 的詳細資訊,請參閱使用個人存取權杖驗證存取 \(英文\)。

範圍 存取類型
Code 讀取
Project and team 讀取
Identity 讀取
User profile 讀取
Work items 讀取
Service connections 讀取、查詢、管理1

1 只有當您已啟用自動同步處理時,才需要 Service connections 權限。

與原始檔控制同步處理

請遵循這些步驟來與原始檔控制進行同步處理。

  1. 請從 [原始檔控制] 頁面上的表格中選取來源。

  2. 按一下 [開始同步處理] 開始同步處理程序。

  3. 按一下 [同步處理作業] 索引標籤,以檢視目前或先前同步處理作業的狀態。

  4. 在 [原始檔控制] 下拉式功能表中,選取原始檔控制機制。

    Sync status

  5. 按一下作業可讓您檢視作業輸出。 以下範例是原始檔控制同步作業的輸出。

    ===================================================================
    
    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. 選取 [原始檔控制同步處理作業摘要] 頁面上的 [所有記錄],即可取得其他記錄。 這些額外的記錄項目可協助您針對使用原始檔控制時可能發生的問題進行疑難排解。

中斷原始檔控制連線

中斷與原始檔控制存放庫的連線:

  1. 在自動化帳戶的 [帳戶設定] 下,開啟 [原始檔控制]

  2. 選取要移除的原始檔控制機制。

  3. 在 [原始檔控制摘要] 頁面上,按一下 [刪除]

處理編碼問題

如果有多位使用者正在使用不同的編輯器編輯原始檔控制存放庫中的 Runbook,則可能會發生編碼問題。 若要深入了解這種情況,請參閱編碼問題的常見原因

更新 PAT

目前,您無法使用 Azure 入口網站來更新原始檔控制中的 PAT。 當您的 PAT 過期或撤銷時,您可以使用這些方式的其中一種,以新的存取權杖來更新原始檔控制:

下一步