Azure Stack Hub への SQL Server リソース プロバイダーのデプロイ

重要

Azure Stack Hub ビルド 2108 以降では、アクセスが許可されているサブスクリプションに SQL と MySQL リソース プロバイダーが提供されます。 この機能の使用を開始する場合、または以前のバージョンからアップグレードする必要がある場合は、サポート ケースを開くと、サポート エンジニアがデプロイまたはアップグレード プロセスを説明します。

Azure Stack Hub SQL Server リソース プロバイダーを使用して、SQL データベースを Azure Stack Hub サービスとして公開します。

SQL リソース プロバイダーは、Windows Server 2016 Server Core 仮想マシン上のサービスとして実行されます。

SQL リソース プロバイダーは、特別な Add-on RP Windows Server 上のサービスとして実行されます。

重要

SQL または MySQL をホストするサーバー上に項目を作成するのは、リソース プロバイダーのみが実行する必要があります。 リソース プロバイダーによって作成されていないホスト サーバー上の項目はサポートされません。これによって、不一致状態になる可能性があります。

重要

V2.x SQL/MySQL リソース プロバイダーは、ASDK ではサポートされていないデプロイ リソース プロバイダー (DRP) インストール メカニズムを使用します。 そのため、V2.x SQL/MySQL リソース プロバイダーは ASDK ではサポートされていません。

前提条件

既にリソース プロバイダーをインストールしている場合は、次の前提条件を満たしていると考えられるため、このセクションは省略してもかまいません。 それ以外の場合は、続ける前に次の手順を完了してください。

  1. まだの場合は、Azure Stack Hub インスタンスを Azure に登録します。 この手順は、Azure から Marketplace に接続して項目をダウンロードする際に必要になります。

  2. Azure Stack Hub 管理者ポータルの Marketplace Management 機能に慣れていない場合は、Azure から Marketplace 項目をダウンロードして Azure Stack Hub に発行する方法に関するページを確認してください。 この記事では、Azure から Azure Stack Hub Marketplace に項目をダウンロードする手順について説明しています。 接続されている場合と接続されていない場合、両方のシナリオについての説明があります。 Azure Stack Hub インスタンスが切断されているか、部分的にしか接続されていない場合は、インストールの準備として追加の前提条件を満たす必要があります。

  3. Microsoft Entraホーム ディレクトリを更新します。 ビルド 1910 以降の場合、ホーム ディレクトリ テナントに新しいアプリケーションを登録する必要があります。 このアプリを使用すると、Azure Stack Hub で新しいリソース プロバイダー (Event Hubs など) を正常に作成し、Microsoft Entra テナントに登録できます。 これは、ビルド 1910 以降にアップグレードした後で実行する必要がある 1 回限りの操作です。 このステップを完了しないと、マーケットプレースのリソース プロバイダーのインストールが失敗します。

SQL Server リソース プロバイダーの前提条件

  • 以下にアクセスできるコンピューターとアカウントが必要です。

    • Azure Stack Hub 管理者ポータル
    • 特権エンドポイント (SQL Server リソース プロバイダー V1 をデプロイするとき、または SQL Server リソース プロバイダー V1 から SQL Server リソース プロバイダー V2 にアップグレードするときにのみ必要です)。
    • Azure Resource Manager 管理エンドポイント https://adminmanagement.region.<fqdn> (<fqdn> は完全修飾ドメイン名)。
    • Id プロバイダーとしてMicrosoft Entra IDを使用するように Azure Stack Hub がデプロイされている場合は、インターネット。
  • 次のバージョン マッピングの表に従って、サポートされているバージョンの SQL リソース プロバイダー バイナリをダウンロードします。 V2 SQL リソース プロバイダーの場合は、Marketplace の項目を Azure Stack Hub にダウンロードします

    サポートされる Azure Stack Hub のバージョン SQL RP バージョン RP サービスが実行されている Windows Server
    2206, 2301, 2306, 2311 SQL RP バージョン 2.0.13.x Microsoft AzureStack Add-on RP Windows Server 1.2009.0
    2108, 2206 SQL RP バージョン 2.0.6.x Microsoft AzureStack Add-on RP Windows Server 1.2009.0
  • 必要な Windows Server VM が Azure Stack Hub Marketplace にダウンロードされていることを確認します。 必要な場合は、上記のバージョン マッピング テーブルに従って、イメージを手動でダウンロードします。

  • データセンターの統合の前提条件を満たしていることを確認します。

    前提条件 リファレンス
    条件付き DNS フォワーダーが正しく設定されている。 Azure Stack Hub とデータセンターの統合 - DNS
    リソース プロバイダー用の受信ポートが開いている。 Azure Stack Hub データセンターの統合 - ポートとプロトコル (受信)
    PKI 証明書のサブジェクトと SAN が正しく設定されている。 Azure Stack Hub デプロイの必須 PKI 前提条件
    Azure Stack Hub デプロイの PaaS 証明書の前提条件
  • 証明書を準備します。 (統合システムのインストールの場合のみ。)

    • Azure Stack Hub のデプロイの PKI の要件に関するページの「オプションの PaaS 証明書」セクションで説明されている SQL PaaS PKI 証明書を指定する必要があります。 サブジェクトの別名 (SAN) は、次の名前付けパターンに従っている必要があります (パスワードで保護されている場合): CN=*.dbadapter.<リージョン>.<FQDN>。 マーケットプレース管理でダウンロードされたパッケージのスクリーンショット。
    • SQL Server リソース プロバイダー V1 をデプロイするときは、DependencyFilesLocalPath パラメーターで指定された場所に .pfx ファイルを配置します。 ASDK システムの証明書は提供しないでください。
    • SQL Server リソース プロバイダー V2 をデプロイするときは、次のインストール手順のために証明書を準備します。

切断されたシナリオ

切断されたシナリオで SQL Server リソース プロバイダー V2 をデプロイする場合は、Marketplace の項目を Azure Stack Hub にダウンロードする手順に従って、SQL Server リソース プロバイダー項目と Add-on RP Windows Server 項目を Azure Stack Hub 環境にダウンロードします。

切断されたシナリオで SQL Server リソース プロバイダー V1 をデプロイするときは、次の手順を実行して、必要な PowerShell モジュールをダウンロードし、手動でリポジトリに登録します。

  1. インターネット接続が確立されたコンピューターにサインインし、次のスクリプトを使用して、PowerShell モジュールをダウンロードします。

    Import-Module -Name PowerShellGet -ErrorAction Stop
    Import-Module -Name PackageManagement -ErrorAction Stop
    
    # path to save the packages, c:\temp\azs1.6.0 as an example here
    $Path = "c:\temp\azs1.6.0"
    
  2. デプロイするリソース プロバイダーのバージョンに応じて、いずれかのスクリプトを実行します。

    # for resource provider version >= 1.1.93.0
    Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.5.0
    Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.8.2
    
    # for resource provider version <= 1.1.47.0
    Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.3.0
    Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.6.0
    
  3. その後、ダウンロードしたパッケージを USB デバイスにコピーします。

  4. 接続が切断されたワークステーションにサインインし、パッケージを USB デバイスからワークステーション上の場所にコピーします。

  5. この場所をローカル リポジトリとして登録します。

    # requires -Version 5
    # requires -RunAsAdministrator
    # requires -Module PowerShellGet
    # requires -Module PackageManagement
    
    $SourceLocation = "C:\temp\azs1.6.0"
    $RepoName = "azs1.6.0"
    
    Register-PSRepository -Name $RepoName -SourceLocation $SourceLocation -InstallationPolicy Trusted
    
    New-Item -Path $env:ProgramFiles -name "SqlMySqlPsh" -ItemType "Directory"
    

SQL リソース プロバイダー V2 をデプロイする

V1 バージョンからアップグレードする場合は、SQL Server リソース プロバイダーの更新に関するドキュメントをご覧ください。

インストールを開始する

  1. まだサインインしていない場合は、Azure Stack Hub 管理者ポータルにサインインし、左側の [Marketplace Management] 選択して、 [リソース プロバイダー] を選択します。

  2. SQL リソース プロバイダーとその他の必要なソフトウェアがダウンロードされると、Marketplace Management に、"SQL Server リソース プロバイダー" パッケージの状態が "インストールされていません" と表示されます。 状態が "ダウンロード済み" の他のパッケージが存在する場合があります。 RP をインストールする前のマーケットプレース管理のスクリーンショット。

  3. インストールする行を選択します。 SQL Server リソース プロバイダーのパッケージのインストール ページの上部には、青いバナーが表示されます。 バナーを選択してインストールを開始します。 Marketplace 管理のインストール開始のスクリーンショット。

必須コンポーネントのインストール

  1. 次に、インストール ページが表示されます。 インストール プロセスを開始するには、 [必須コンポーネントのインストール] を選択します。 マーケットプレース管理のインストールの前提条件のスクリーンショット。

  2. 必須コンポーネントのインストールが成功するまで待ちます。 [必須コンポーネントのインストール] の横に緑色のチェックマークが表示されるのを確認してから、次の手順に進みます。 Marketplace 管理のインストールの前提条件が成功したスクリーンショット。

シークレットの準備

  1. 2 [Prepare secrets](シークレットの準備) 手順で、 [証明書の追加] を選択すると、 [証明書の追加] パネルが表示されます。 マーケットプレース管理のシークレットの準備のスクリーンショット。

  2. [証明書の追加] の証明書のファイル名フィールドの右側にある参照ボタンを選択します。 必須コンポーネントを完了したときに生成した .pfx 証明書ファイルを選択します。

  3. SQL Server リソース プロバイダー SSL 証明書用の安全な文字列を作成するときに指定したパスワードを入力します。 その後、 [追加] を選択します。 Marketplace 管理の証明書の追加のスクリーンショット。

リソース プロバイダーのインストール

  1. 証明書のインストールが成功したら、 [Prepare secrets](シークレットの準備) の横に緑色のチェックマークが表示されるのを確認してから、次の手順に進みます。 次に、3 [Install resource provider]\(リソース プロバイダーのインストール\) の横にある [インストール] ボタンを選択します。 マーケットプレース管理の RP インストールの開始のスクリーンショット。

  2. 次に、以下のページが表示されます。これは SQL リソース プロバイダーがインストール中であることを示します。 Marketplace Management RP のインストールのスクリーンショット。

  3. インストール完了の通知が表示されるのを待ちます。 通常、このプロセスには、Azure Stack Hub の種類に応じて 1 時間以上かかります。 マーケットプレース管理 RP のインストールが進行中のスクリーンショット。

  4. [Marketplace Management]\(Marketplace 管理\)[リソース プロバイダー] ページに戻って、SQL Server リソース プロバイダーのインストールが正常に完了したことを確認します。 SQL Server リソース プロバイダーの状態が、"インストール済み" と表示されている必要があります。 Marketplace Management RP がインストールされているスクリーンショット。

SQL リソース プロバイダー V1 をデプロイする

すべての前提条件を満たしたら、自己展開形式ファイルを実行して、ダウンロードしたインストール パッケージを一時ディレクトリに抽出します。 Azure Stack Hub の Azure Resource Manager 管理エンドポイントと特権エンドポイントの両方にアクセスできるコンピューターから DeploySqlProvider.ps1 スクリプトを実行して、SQL リソース プロバイダーをデプロイします。 DeploySqlProvider.ps1 スクリプトは、Azure Stack Hub のバージョンに応じてダウンロードした SQL リソース プロバイダーのバイナリの一部として抽出されます。

重要

リソース プロバイダーをデプロイする前に、新しい機能、修正、デプロイに影響を与える可能性のある既知の問題に関する詳細については、リリース ノートを確認してください。

SQL リソース プロバイダーをデプロイするには、管理者特権で新しい PowerShell ウィンドウ (PowerShell ISE ではない) を開き、SQL リソース プロバイダーのバイナリ ファイルを抽出したディレクトリに変更します。

重要

デプロイまたは更新スクリプトを実行する前に、Clear-AzureRmContext -Scope CurrentUser および Clear-AzureRmContext -Scope Process を使用してキャッシュをクリアすることを強くお勧めします。

DeploySqlProvider.ps1 スクリプトを実行すると、次のタスクが完了します。

  • Azure Stack Hub のストレージ アカウントに、証明書とその他のアーティファクトをアップロードします。
  • ギャラリー パッケージを発行して、ギャラリーを使用して SQL データベースをデプロイできるようにします。
  • ホスティング サーバーをデプロイするためのギャラリー パッケージを発行します。
  • ダウンロードした Windows Server 2016 Core イメージまたは Microsoft AzureStack Add-on RP Windows Server イメージを使用して VM をデプロイした後、SQL リソース プロバイダーをインストールします。
  • リソース プロバイダー VM にマップされるローカル DNS レコードを登録します。
  • リソース プロバイダーをオペレーター アカウントのローカルの Azure Resource Manager に登録します。

注意

SQL リソース プロバイダーのデプロイが開始されると、system.local.sqladapter リソース グループが作成されます。 このリソース グループに対して必要なデプロイが完了するまで最大で 75 分かかる可能性があります。 system.local.sqladapter リソース グループ内に他のリソースを配置しないでください。

DeploySqlProvider.ps1 パラメーター

コマンド ラインから次のパラメーターを指定できます。 必須パラメーターの指定がない場合、またはいずれかのパラメーターの検証が失敗した場合は、指定することを求められます。

パラメーター名 説明 コメントまたは既定値
CloudAdminCredential 特権エンドポイントへのアクセスに必要な、クラウド管理者の資格情報。 必須
AzCredential Azure Stack Hub サービス管理者アカウントの資格情報。 Azure Stack Hub のデプロイに使用したのと同じ資格情報を使用します。 AzCredential で使用するアカウントに多要素認証 (MFA) が必要な場合、スクリプトは失敗します。 必須
VMLocalCredential SQL リソース プロバイダー VM のローカル管理者アカウントの資格情報。 必須
PrivilegedEndpoint 特権エンドポイントの IP アドレスまたは DNS 名。 必須
AzureEnvironment Azure Stack Hub のデプロイに使用するサービス管理者アカウントの Azure 環境。 Microsoft Entraデプロイにのみ必要です。 サポートされている環境名は、AzureCloudAzureUSGovernment、または中国のMicrosoft Entra ID AzureChinaCloud を使用している場合です。 AzureCloud
DependencyFilesLocalPath 統合システムの場合のみ、証明書 .pfx ファイルはこのディレクトリにも配置する必要があります。 必要に応じて、ここで 1 つの Windows Update MSU パッケージをコピーできます。 省略可能 (統合システムでは必須)
DefaultSSLCertificatePassword .pfx 証明書のパスワード。 必須
MaxRetryCount エラーが 発生した場合に各操作を再試行する回数。 2
RetryDuration 再試行間のタイムアウト間隔 (秒単位)。 120
アンインストール リソース プロバイダーと関連付けられているすべてのリソースを削除します (以下のメモを参照してください)。 いいえ
DebugMode 障害発生時に自動クリーンアップが行われないようにします。 いいえ

カスタム スクリプトを使用して SQL リソース プロバイダーをデプロイする

SQL リソース プロバイダーのバージョン 1.1.33.0 以前のバージョンをデプロイする場合は、PowerShell で特定のバージョンの AzureRm.BootStrapper と Azure Stack Hub モジュールをインストールする必要があります。

SQL リソース プロバイダーのバージョン 1.1.47.0 以降をデプロイする場合は、デプロイ スクリプトにより自動的に必要な PowerShell モジュールがダウンロードされ、パス C:\Program Files\SqlMySqlPsh にインストールされます。

# Install the AzureRM.Bootstrapper module, set the profile, and install the AzureStack module
# Note that this might not be the most currently available version of Azure Stack Hub PowerShell
Install-Module -Name AzureRm.BootStrapper -RequiredVersion 0.5.0 -Force
Use-AzureRmProfile -Profile 2018-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.6.0

Note

接続が切断された場合のシナリオでは、必要な PowerShell モジュールのダウンロードと手動でのリポジトリ登録が前提条件として必要です。

リソース プロバイダーをデプロイする際の手動による構成を除外するには、次のスクリプトをカスタマイズできます。 必要に応じて、Azure Stack Hub のデプロイ用の既定のアカウントの情報とパスワードを変更します。

# Use the NetBIOS name for the Azure Stack Hub domain. On the Azure Stack Hub SDK, the default is AzureStack but could have been changed at install time.
$domain = "AzureStack"

# For integrated systems, use the IP address of one of the ERCS VMs
$privilegedEndpoint = "AzS-ERCS01"

# Provide the Azure environment used for deploying Azure Stack Hub. Required only for Azure AD deployments. Supported values for the <environment name> parameter are AzureCloud, AzureChinaCloud, or AzureUSGovernment depending which Azure subscription you're using.
$AzureEnvironment = "<EnvironmentName>"

# Point to the directory where the resource provider installation files were extracted.
$tempDir = 'C:\TEMP\SQLRP'

# The service admin account can be Azure Active Directory or Active Directory Federation Services.
$serviceAdmin = "admin@mydomain.onmicrosoft.com"
$AdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$AdminCreds = New-Object System.Management.Automation.PSCredential ($serviceAdmin, $AdminPass)

# Set credentials for the new resource provider VM local admin account.
$vmLocalAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential ("sqlrpadmin", $vmLocalAdminPass)

# Add the cloudadmin credential that's required for privileged endpoint access.
$CloudAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$CloudAdminCreds = New-Object System.Management.Automation.PSCredential ("$domain\cloudadmin", $CloudAdminPass)

# Change the following as appropriate.
$PfxPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force

# For version 1.1.47.0 or later, the PowerShell modules used by the RP deployment are placed in C:\Program Files\SqlMySqlPsh
# The deployment script adds this path to the system $env:PSModulePath to ensure correct modules are used.
$rpModulePath = Join-Path -Path $env:ProgramFiles -ChildPath 'SqlMySqlPsh'
$env:PSModulePath = $env:PSModulePath + ";" + $rpModulePath 

# Change to the directory folder where you extracted the installation files. Don't provide a certificate on ASDK!
. $tempDir\DeploySQLProvider.ps1 `
    -AzCredential $AdminCreds `
    -VMLocalCredential $vmLocalAdminCreds `
    -CloudAdminCredential $cloudAdminCreds `
    -PrivilegedEndpoint $privilegedEndpoint `
    -AzureEnvironment $AzureEnvironment `
    -DefaultSSLCertificatePassword $PfxPass `
    -DependencyFilesLocalPath $tempDir\cert

リソース プロバイダーのインストール スクリプトが終了したら、ブラウザーを最新の情報に更新します。これによって、最新の更新プログラムが表示され、現在の PowerShell セッションを終了できることを確認します。

Azure Stack Hub ポータルを使用して V1 のデプロイを確認する

  1. 管理ポータルにサービス管理者としてサインインします。
  2. [リソース グループ] を選択します。
  3. system.<location>.sqladapter リソース グループを選択します。
  4. リソース グループの概要の概要ページで、失敗したデプロイは表示されていないはずです。
  5. 最後に、管理者ポータルで [仮想マシン] を選択して、SQL リソース プロバイダー VM が正常に作成され、実行されていることを確認します。

Microsoft Entra IDの重要な構成

Azure Stack Hub が ID プロバイダーとしてMicrosoft Entra IDを使用している場合は、リソース プロバイダー SQL Serverインストールされている VM に送信インターネット接続があることを確認します。

SQL Server リソース プロバイダーがインストールされている VM の IP を取得する必要がある場合は (つまり、ファイアウォールの許可リストに IP を追加する場合)、サポート ケースを開き、サポート エンジニアに SQL Server リソース プロバイダーのサブスクリプションを一時的に表示してもらいます。 その後、サブスクリプションで VM を検索し、その IP を取得できます。

次のステップ

ホスティング サーバーを追加する