共用方式為


使用原始檔控制整合

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

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

附註

  • 原始檔控制同步處理作業會在使用者的自動化帳戶之下執行,而且會以與其他自動化作業相同的費率計費。 此外,Azure 自動化作業不支援 Multi-Factor Authentication (MFA)。
  • 原始檔控制整合僅支援 PowerShell 5.1 Runbook。

原始檔控制類型

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

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

先決條件

附註

Azure 自動化支援系統指派和使用者指派的受控識別搭配原始檔控制整合。 若要使用使用者指派的受控識別,請建立具有值作為使用者指派身分識別之用戶端識別碼的自動化變數 AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID。 應啟用使用者指派 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. 在您的自動化帳戶中,選取 [原始檔控制 ],然後選取 [ 新增]。

    選取原始檔控制

  2. 選擇 [原始檔控制類型],然後選取 [ 驗證]。

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

  4. 在 [ 原始檔控制摘要 ] 頁面上,使用字段填入下面定義的原始檔控制屬性。 完成時,請選取 [儲存]

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

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

    螢幕擷取畫面:描述原始檔控制摘要。

附註

  • 原始檔控制存放庫的登入可能會與 Azure 入口網站的登入不同。 確定您在設定原始檔控制時,使用了正確的原始檔控制存放庫帳戶登入。 如果有所疑慮,請在您的瀏覽器中開啟新的索引標籤並從 dev.azure.comvisualstudio.comgithub.com 登出,然後嘗試重新連線至原始檔控制。
  • 不支援跨租用戶驗證。
  • 如果一年前建立原始檔控制,自動同步處理可能會失敗,因為用來叫用原始檔控制的 Webhook 會在一年後到期。 若要解決此問題,請在自動化帳戶中使用相同的設定建立新的原始檔控制,如此便可產生具有延長到期日的新 Webhook。

在 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 的詳細資訊,請參閱 建立命令行的個人存取令牌

Scope 描述
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 的詳細資訊,請參閱使用個人存取權杖驗證存取 \(英文\)。

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

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

與原始檔控制同步處理

若要與原始檔控制同步,請遵循下列步驟:

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

  2. 選取 [啟動同步] 以啟動同步程式。

  3. 選取 [ 同步作業 ] 索引標籤,以檢視目前同步作業或先前同步作業的狀態。

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

    同步處理狀態

  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 過期或撤銷時,您可以使用這些方式的其中一種,以新的存取權杖來更新原始檔控制:

後續步驟