次の方法で共有


ソース管理の統合を使用する

Azure Automation でのソース管理の統合により、ソース管理リポジトリからの一方向の同期がサポートされます。 ソース管理では、GitHub または Azure DevOps のソース管理リポジトリ内のスクリプトを使用して、Automation アカウントの Runbook を最新の状態に維持することができます。 この機能により、開発環境でテストされたコードを、運用の Automation アカウントに昇格することが容易になります。

ソース管理の統合によって、チームとの共同作業、変更の追跡、Runbook の以前のバージョンへのロールバックを容易に行えるようになります。 たとえば、ソース管理を使用すると、開発、テスト、運用の Automation アカウントに対して、ソース管理内の異なるブランチを同期できます。

  • ソース管理の同期ジョブは、ユーザーの Automation アカウントのもとで実行され、その他の Automation ジョブと同じレートで課金されます。 さらに、Azure Automation ジョブは Multi-Factor Authentication (MFA) をサポートしていません。
  • ソース管理の統合は、PowerShell 5.1 Runbook でのみサポートされています。

ソース管理の種類

Azure Automation は、次の 3 種類のソース管理をサポートしています。

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

前提条件

Azure Automation では、ソース管理の統合を使用したシステム割り当てとユーザー割り当て両方のマネージド ID がサポートされます。 ユーザー割り当てマネージド ID を使用するには、値をユーザー割り当て ID のクライアント ID として指定してオートメーション変数 AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID を作成します。 ユーザー割り当て Managed Identity が有効になっていることと、Automation アカウントに対する共同作成者のアクセス権が必要です。 この変数が作成されていない場合、既定ではシステム割り当て ID を使用します。

ユーザー割り当てマネージド ID を表示しているスクリーンショット。

実行アカウントとマネージド ID の両方が有効になっている場合は、マネージド ID が優先されます。

重要

Azure Automation の実行アカウントは、2023 年 9 月 30 日に廃止されました。 マネージド ID を使用することをお勧めします。

この Azure DevOps ドキュメントによると、"OAuth を使用したサード パーティ アプリケーションのアクセス" ポリシーは、既定ではすべての新しい組織に対してオフになっています。 そのため、Azure DevOps の [組織の設定] の [ポリシー] タイルで [OAuth を使用したサード パーティ アプリケーションのアクセス] を有効にせずに、ソース管理の種類として Azure DevOps (Git) を使用して Azure Automation でソース管理を構成しようとすると、"SourceControl securityToken が無効です" というエラーになる可能性があります。 そのため、このエラーを回避するには、まず、Azure DevOps の [組織の設定] の [ポリシー] タイルで [OAuth を使用したサード パーティ アプリケーションのアクセス] を有効にします。

ソース管理を構成する

このセクションでは、Automation アカウントのソース管理を構成する方法について説明します。 Azure portal または PowerShell のいずれかを使用できます。

共同作成者ロールにマネージド ID を割り当てる

この例では、Azure PowerShell を使用して、サブスクリプションの共同作成者ロールを Azure Automation アカウント リソースに割り当てる方法を示します。

共同作成者ロールにマネージド ID を割り当てるには、次の手順に従います。

  1. 昇格された特権で PowerShell コンソールを開きます。

  2. コマンド Connect-AzAccount を実行して、Azure にサインインします。

  3. 共同作成者ロールにマネージド ID を割り当てるには、次のコマンドを実行します。

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

Azure portal でソース管理を構成する

Azure portal を使用してソース管理を構成するには、次の手順に従います。

  1. Automation アカウントで、[ ソース管理 ] を選択し、[ 追加] を選択します。

    ソース管理の選択

  2. [ ソース管理の種類] を選択し、[ 認証] を選択します。

  3. ブラウザー ウィンドウが開き、サインインが求められます。 指示に従って認証を完了します。

  4. [ ソース管理の概要 ] ページで、以下に定義されているソース管理プロパティに入力するフィールドを使用します。 完了したら [保存]を選択します

    プロパティ 説明
    ソース管理名 ソース管理のためのフレンドリ名。 この名前は、アルファベットと数字でのみ構成されている必要があります。
    ソース管理の種類 ソース管理機構の種類。 使用可能なオプションは、次のとおりです:
    * GitHub
    * Azure DevOps (Git)
    * Azure DevOps (TFVC)
    リポジトリ リポジトリまたはプロジェクトの名前。 最初の 200 個のリポジトリが取得されます。 リポジトリを検索するには、フィールドに名前を入力し、 GitHub で [検索] を選択します。
    [Branch]\(ブランチ) ソース ファイルの抽出元のブランチ。 TFVC ソース管理の種類では、ブランチのターゲット設定は使用できません。
    フォルダー パス 同期する Runbook を含むフォルダー (/Runbooks など)。 指定されたフォルダー内の Runbook のみが同期されます。 再帰はサポートされていません。
    自動同期1 ソース管理リポジトリまたは GitHub リポジトリ内でコミットが行われる際に、自動同期をオンまたはオフにする設定。
    Runbook の発行 ソース管理からの同期後に Runbook が自動的に発行される場合は [オン] を、それ以外の場合は [オフ] に設定します。
    説明 ソース管理に関する追加の詳細を指定するテキスト。

    1 ソース管理と Azure DevOps の統合を構成する際に自動同期を有効にするには、プロジェクト管理者または GitHub リポジトリ所有者である必要があります。 コラボレーターは、自動同期を使用せずに、ソース管理のみを構成することができます。
    自動同期は、Automation のプライベート リンクでは機能しません。 プライベート リンクを有効にした場合、ソース管理 Webhook 呼び出しはネットワークの外部であるため失敗します。

    [ソース管理の概要] について説明しているスクリーンショット。

  • ソース管理リポジトリのログインは、Azure portal でのログインと異なる場合があります。 ソース管理を構成する際は、ソース管理リポジトリの正しいアカウントでログインするようにしてください。 不明点がある場合は、ブラウザーで新しいタブを開き、dev.azure.comvisualstudio.com、または github.com からログアウトし、ソース管理への再接続を試みてください。
  • クロステナント認証はサポートされていません。
  • ソース管理の呼び出しに使用される Webhook は 1 年後に期限切れになるので、ソース管理が 1 年以上前に作成された場合、自動同期が失敗する可能性があります。 この問題を解決するには、同じ構成で Automation アカウントに新しいソース管理を作成します。これにより、有効期限が延長された新しい Webhook が生成されます。

PowerShell でソース管理を構成する

PowerShell を使用して Azure Automation のソース管理を構成することもできます。 この操作に PowerShell コマンドレットを使用するには、個人用アクセス トークン (PAT) が必要です。 New-AzAutomationSourceControl コマンドレットを使用してソース管理接続を作成します。 このコマンドレットでは、PAT に対するセキュリティで保護された文字列が必要です。 セキュリティで保護された文字列を作成する方法については、「ConvertTo-SecureString」を参照してください。

次のサブセクションは、PowerShell による GitHub、Azure DevOps (Git)、Azure DevOps (TFVC) のソース管理接続の作成について説明しています。

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) では、以前の形式で使用されていた visualstudio.com ではなく、dev.azure.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) では、以前の形式で使用されていた visualstudio.com ではなく、dev.azure.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

1Service 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. Automation アカウントの [アカウント設定] で、[ソース管理] を開きます。

  2. 削除するソース管理機構を選択します。

  3. [ ソース管理の概要 ] ページで、[削除] を選択 します

エンコードに関する問題を処理する

ソース管理リポジトリで複数のユーザーがさまざまなエディターを使用して Runbook を編集していると、エンコードの問題が発生する可能性があります。 この状況について詳しくは、「エンコード問題の一般的な原因」をご覧ください。

PAT を更新する

現時点では、ソース管理の PAT を更新するために Azure portal を使用できません。 PAT が有効期限切れになったり取り消されたりしたら、以下のいずれかの方法で、新しいアクセス トークンを使用してソース管理を更新できます。

次のステップ