スクリプトを使用して SQL Server インスタンスを Azure に大規模に接続する

適用対象:SQL Server

重要

Azure Arc に接続されているサーバーに SQL Server がインストールされている場合、Azure Arc によって SQL Server 用の Azure 拡張機能が自動的にインストールされます。 すべての SQL Server インスタンス リソースが Azure に自動的に作成され、すべての SQL Server インスタンスに対して一元化された管理プラットフォームが提供されます。

SQL Server インスタンスを自動的に接続するには、「SQL Server を Azure Arc に自動的に接続する」を参照してください。

サーバーが既に Azure に接続されているが、SQL Server 用の Azure 拡張機能が自動的にデプロイされない場合は、この記事の方法を使用してください。

この方法を使用して拡張機能がデプロイされる場合、ArcSQLServerExtensionDeployment = Disabled タグが Arc マシン リソースに作成されます。

この記事では、複数の Windows または Linux マシンにインストールされている SQL Server インスタンスを、スクリプトを使用して 1 つのタスクとして Azure Arc に接続する方法について説明します。 マシンが Azure に接続されると、Azure Arc によって SQL Server 用の Azure 拡張機能が自動的にインストールされます。 詳細については、「SQL Server を Azure Arc に自動的に接続する」を参照してください。

最適なエクスペリエンスを実現するために、Microsoft Entra ID を使用してください。 Microsoft Entra ID では、サービス プリンシパルを定義します。 サービス プリンシパルは、マシンを Azure に接続する場合や、Azure Arc 対応サーバーと Azure Arc によって有効化された SQL Server 用の Azure リソースを作成する場合に必要な最小限のアクセス許可のみが付与される、特殊な制限付きの管理用 ID です。

作業を開始する前に、必ず前提条件を確認し、必要なアクセス許可を満たすカスタム ロールが作成されていることを確認してください。

複数のインスタンスを接続する

各マシンには Azure PowerShell がインストールされている必要があります。

  1. サービス プリンシパルを作成します。 New-AzADServicePrincipal コマンドレットを使用します。 必ず、出力を変数に格納してください。 そうしないと、後で必要なパスワードを取得できなくなります。

    $sp = New-AzADServicePrincipal -DisplayName "Arc-for-servers" -Role <your custom role>
    $sp
    
  2. Microsoft Graph にアクセスするためのアクセス許可をサービス プリンシパルに付与します。

    注意

    • サービス プリンシパルを作成するときのアカウントは、オンボーディングに使用したいサブスクリプションの所有者またはユーザー アクセス管理者であることが必要です。 ロールの割り当てを作成する十分なアクセス許可がない場合、サービス プリンシパルは作成されますが、マシンをオンボードすることはできません。 カスタム ロールの作成手順については、「前提条件」で確認できます。
  3. $sp 変数に格納されているパスワードを取得します。

    $credential = New-Object pscredential -ArgumentList "temp", $sp.PasswordCredentials.SecretText 
    $credential.GetNetworkCredential().password
    
  4. サービス プリンシパルのテナント ID の値を取得します。

    $tenantId= (Get-AzContext).Tenant.Id
    
  5. 適切なセキュリティ プラクティスを使用して、パスワード、アプリケーション ID、テナント ID の値をコピーして保存します。 サービス プリンシパルのパスワードを忘れたり紛失したりした場合は、New-AzADSpCredential コマンドレットを使用してリセットできます。

    Note

    Azure Arc for servers では現在、証明書を使用したサインインがサポートされていないため、サービス プリンシパルには認証のためのシークレットが必要であることに注意してください。

  6. SQL Server を Azure Arc に接続する」の手順に従って、ポータルから PowerShell スクリプトをダウンロードします。

  7. PowerShell ISE の管理者インスタンスでスクリプトを開き、前述のサービス プリンシパルのプロビジョニング時に生成された値を使用して、次の環境変数を置き換えます。 これらの変数は最初は空になっています。

    $servicePrincipalAppId="{serviceprincipalAppID}"
    $servicePrincipalSecret="{serviceprincipalPassword}"
    $servicePrincipalTenantId="{serviceprincipalTenantId}"
    
  8. 各ターゲット マシンでスクリプトを実行します。

オンボードが成功したことを確認する

SQL Server インスタンスを Azure に接続したら、Azure portal に移動して、新しく作成された Azure Arc リソースを確認します。 約 1 分以内に、接続されている各マシンに対して新しい Server - Azure Arc リソースが表示され、接続されている SQL Server インスタンスごとに新しい SQL Server - Azure Arc リソースが表示されます。 これらのリソースが作成されていない場合、それは、拡張機能のインストールとアクティブ化プロセス中に問題が発生したことを意味します。 トラブルシューティングのオプションについては、「SQL Server 用 Azure 拡張機能のトラブルシューティング」をご覧ください。

Screenshot showing a successful onboard.

次のステップ