Azure Stack Hub への MySQL リソース プロバイダーのデプロイ
重要
Azure Stack Hub ビルド 2108 以降では、アクセスが許可されているサブスクリプションに SQL と MySQL リソース プロバイダーが提供されます。 この機能の使用を開始する場合、または以前のバージョンからアップグレードする必要がある場合は、サポート ケースを開くと、サポート エンジニアがデプロイまたはアップグレード プロセスを説明します。
MySQL サーバー リソース プロバイダーを使用して、MySQL データベースを Azure Stack Hub サービスとして公開します。
MySQL リソース プロバイダーは、Windows Server 2016 Server Core 仮想マシン上のサービスとして実行されます。
MySQL リソース プロバイダーは、特別な Add-on RP Windows Server 上のサービスとして実行されます。
重要
SQL または MySQL をホストするサーバー上に項目を作成するのは、リソース プロバイダーのみが実行する必要があります。 リソース プロバイダーによって作成されていないホスト サーバー上の項目はサポートされません。これによって、不一致状態になる可能性があります。
前提条件
既にリソース プロバイダーをインストールしている場合は、次の前提条件を満たしていると考えられるため、このセクションは省略してもかまいません。 それ以外の場合は、続ける前に次の手順を完了してください。
まだの場合は、Azure Stack Hub インスタンスを Azure に登録します。 この手順は、Azure から Marketplace に接続して項目をダウンロードする際に必要になります。
Azure Stack Hub 管理者ポータルの Marketplace Management 機能に慣れていない場合は、Azure から Marketplace 項目をダウンロードして Azure Stack Hub に発行する方法に関するページを確認してください。 この記事では、Azure から Azure Stack Hub Marketplace に項目をダウンロードする手順について説明しています。 接続されている場合と接続されていない場合、両方のシナリオについての説明があります。 Azure Stack Hub インスタンスが切断されているか、部分的にしか接続されていない場合は、インストールの準備として追加の前提条件を満たす必要があります。
Microsoft Entraホーム ディレクトリを更新します。 ビルド 1910 以降の場合、ホーム ディレクトリ テナントに新しいアプリケーションを登録する必要があります。 このアプリを使用すると、Azure Stack Hub で新しいリソース プロバイダー (Event Hubs など) を正常に作成し、Microsoft Entra テナントに登録できます。 これは、ビルド 1910 以降にアップグレードした後で実行する必要がある 1 回限りの操作です。 このステップを完了しないと、マーケットプレースのリソース プロバイダーのインストールが失敗します。
- Azure Stack Hub インスタンスが 1910 以上に正常に更新されたら、Azure Stack Hub Tools リポジトリのクローンまたはダウンロードに関する手順に従います。
- 次に、(更新プログラムまたは新しいリソース プロバイダーをインストールした後に) Azure Stack Hub Microsoft Entraホーム ディレクトリを更新する手順に従います。
MySQL Server リソース プロバイダーの前提条件
以下にアクセスできるコンピューターとアカウントが必要です。
- Azure Stack Hub 管理者ポータル。
- 特権エンドポイント (MySQL Server リソース プロバイダー V1 をデプロイするとき、または MySQL Server リソース プロバイダー V1 から MySQL Server リソース プロバイダー V2 にアップグレードするときにのみ必要です)。
- Azure Resource Manager 管理エンドポイント
https://adminmanagement.region.<fqdn>
(<fqdn>
は完全修飾ドメイン名)。 - Id プロバイダーとしてMicrosoft Entra IDを使用するように Azure Stack Hub がデプロイされている場合は、インターネット。
次のバージョン マッピングの表に従って、サポートされているバージョンの MySQL リソース プロバイダー バイナリをダウンロードします。 V2 MySQL リソース プロバイダーの場合は、Marketplace の項目を Azure Stack Hub にダウンロードします。
サポートされる Azure Stack Hub のバージョン MySQL RP バージョン RP サービスが実行されている Windows Server 2206, 2301, 2306, 2311 MySQL RP バージョン 2.0.13.x Microsoft AzureStack Add-on RP Windows Server 1.2009.0 2108, 2206 MySQL 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>。
- MySQL Server リソース プロバイダー V1 をデプロイするときは、DependencyFilesLocalPath パラメーターで指定された場所に .pfx ファイルを配置します。 ASDK システムの証明書は提供しないでください。
- MySQL Server リソース プロバイダー V2 をデプロイするときは、次のインストール手順のために証明書を準備します。
切断されたシナリオ
切断されたシナリオで MySQL Server リソース プロバイダー V2 をデプロイする場合は、Marketplace の項目を Azure Stack Hub にダウンロードする手順に従って、MySQL Server リソース プロバイダー項目と Add-on RP Windows Server 項目を Azure Stack Hub 環境にダウンロードします。
切断されたシナリオで MySQL Server リソース プロバイダー V1 をデプロイするときは、次の手順を実行して、必要な PowerShell モジュールをダウンロードし、手動でリポジトリに登録します。
インターネット接続が確立されたコンピューターにサインインし、次のスクリプトを使用して、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"
デプロイするリソース プロバイダーのバージョンに応じて、いずれかのスクリプトを実行します。
# 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
その後、ダウンロードしたパッケージを USB デバイスにコピーします。
接続が切断されたワークステーションにサインインし、パッケージを USB デバイスからワークステーション上の場所にコピーします。
この場所をローカル リポジトリとして登録します。
# 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"
MySQL リソース プロバイダー V2 をデプロイする
V1 バージョンからアップグレードする場合は、MySQL Server リソース プロバイダーの更新に関するドキュメントをご覧ください。
インストールを開始する
まだサインインしていない場合は、Azure Stack Hub 管理者ポータルにサインインし、左側の [Marketplace Management] 選択して、 [リソース プロバイダー] を選択します。
MySQL リソース プロバイダーとその他の必要なソフトウェアがダウンロードされると、Marketplace Management に、"MySQL Server リソース プロバイダー" パッケージの状態が "インストールされていません" と表示されます。 状態が "ダウンロード済み" の他のパッケージが存在する場合があります。
インストールする行を選択します。 MySQL Server リソース プロバイダーのパッケージのインストール ページの上部には、青いバナーが表示されます。 バナーを選択してインストールを開始します。
必須コンポーネントのインストール
次に、インストール ページが表示されます。 インストール プロセスを開始するには、 [必須コンポーネントのインストール] を選択します。
必須コンポーネントのインストールが成功するまで待ちます。 [必須コンポーネントのインストール] の横に緑色のチェックマークが表示されるのを確認してから、次の手順に進みます。
シークレットの準備
2 [Prepare secrets](シークレットの準備) 手順で、 [証明書の追加] を選択すると、 [証明書の追加] パネルが表示されます。
[証明書の追加] の証明書のファイル名フィールドの右側にある参照ボタンを選択します。 必須コンポーネントを完了したときに生成した .pfx 証明書ファイルを選択します。
SQL Server リソース プロバイダー SSL 証明書用の安全な文字列を作成するときに指定したパスワードを入力します。 その後、 [追加] を選択します。
リソース プロバイダーを構成してインストールする
証明書のインストールが成功したら、 [Prepare secrets]\(シークレットの準備\) の横に緑色のチェックマークが表示されるのを確認してから、次の手順に進みます。 次に、[3 Install resource provider]\(3 リソース プロバイダーをインストールする\) の横にある [Configure + Install]\(構成とインストール\) ボタンを選択します。
次に、MySQL コネクタ用の Azure Stack Hub BLOB URI を指定する必要があります。
MySQL コネクタの GPL ライセンスをこちらで確認し、バージョン 8.0.21 をローカル フォルダーにダウンロードします。
既定のオペレーター サブスクリプションを使用してストレージ アカウントを作成し、アクセス レベルを "BLOB" または "コンテナー" にしてコンテナーを作成します。
ローカル フォルダーから新しく作成したストレージ コンテナーに mysql-connector-net-8.0.21.msi ファイルをアップロードします。
重要
MySQL コネクタのバージョンが 8.0.21 であることを確認します。
BLOB の URI をコピーします。
MySQL RP の構成ページに戻ります。 BLOB の URI (例: https://<ストレージ アカウント名>.blob.<リージョン>.<FQDN>/<コンテナー名>/mysql-connector-net-8.0.21.msi) をテキスト ボックスに貼り付けて、[OK] をクリックします。
次に、以下のページが表示されます。これは MySQL リソース プロバイダーがインストール中であることを示します。
インストール完了の通知が表示されるのを待ちます。 通常、このプロセスには、Azure Stack Hub の種類に応じて 1 時間以上かかります。
[Marketplace Management]\(Marketplace 管理\) の [リソース プロバイダー] ページに戻って、MySQL Server リソース プロバイダーのインストールが正常に完了したことを確認します。 MySQL Server リソース プロバイダーの状態が、"インストール済み" と表示されている必要があります。
SQL リソース プロバイダー V1 をデプロイする
すべての前提条件を満たしたら、自己展開形式ファイルを実行して、ダウンロードしたインストール パッケージを一時ディレクトリに抽出します。 Azure Stack Hub の Azure Resource Manager 管理エンドポイントと特権エンドポイントの両方にアクセスできるコンピューターから DeployMySqlProvider.ps1 スクリプトを実行して、MySQL リソース プロバイダーをデプロイします。 DeployMySqlProvider.ps1 スクリプトは、ご利用の Azure Stack Hub のバージョンに応じてダウンロードした、MySQL リソース プロバイダー インストール ファイルの一部として抽出されます。
重要
リソース プロバイダーをデプロイする前に、新しい機能、修正、デプロイに影響を与える可能性のある既知の問題に関する詳細については、リリース ノートを確認してください。
MySQL リソース プロバイダーをデプロイするには、管理者特権で新しい PowerShell ウィンドウ (PowerShell ISE ではない) を開き、MySQL リソース プロバイダーのバイナリ ファイルを抽出したディレクトリに変更します。
重要
デプロイまたは更新スクリプトを実行する前に、Clear-AzureRmContext -Scope CurrentUser および Clear-AzureRmContext -Scope Process を使用してキャッシュをクリアすることを強くお勧めします。
Note
接続されていない環境に MySQL Server リソース プロバイダー V1 をデプロイする場合は、mysql-connector-net-6.10.5.msi ファイルをローカル パスにコピーします。 DependencyFilesLocalPath パラメーターを使用してパス名を提供します。
DeployMySqlProvider.ps1 スクリプトを実行して次のタスクを完了します。
- Azure Stack Hub のストレージ アカウントに、証明書とその他のアーティファクトをアップロードします。
- ギャラリー パッケージを公開して、ギャラリーを使用して MySQL データベースをデプロイできるようにします。
- ホスティング サーバーをデプロイするためのギャラリー パッケージを発行します。
- ダウンロードした Windows Server 2016 Core イメージまたは Microsoft AzureStack Add-on RP Windows Server イメージを使用して VM をデプロイした後、MySQL リソース プロバイダーをインストールします。
- リソース プロバイダー VM にマップされるローカル DNS レコードを登録します。
- リソース プロバイダーをオペレーター アカウントのローカルの Azure Resource Manager に登録します。
注意
MySQL リソース プロバイダーのデプロイが開始され、system.local.mysqladapter リソース グループが作成されます。 このリソース グループに必要なデプロイが完了するまで最大で 75 分かかります。 system.local.mysqladapter リソース グループ内に他のリソースを配置しないでください。
DeployMySqlProvider.ps1 パラメーター
これらのパラメーターをコマンド ラインで指定できます。 必須パラメーターの指定がない場合、またはいずれかのパラメーターの検証が失敗した場合は、指定することを求められます。
パラメーター名 | 説明 | コメントまたは既定値 |
---|---|---|
CloudAdminCredential | 特権エンドポイントへのアクセスに必要な、クラウド管理者の資格情報。 | 必須 |
AzCredential | Azure Stack Hub サービス管理者アカウントの資格情報。 Azure Stack Hub のデプロイに使用したのと同じ資格情報を使用します。 AzCredential で使用するアカウントに多要素認証 (MFA) が必要な場合、スクリプトは失敗します。 | 必須 |
VMLocalCredential | MySQL リソースプロバイダー VM のローカル管理者アカウントの資格情報。 | 必須 |
PrivilegedEndpoint | 特権エンドポイントの IP アドレスまたは DNS 名。 | 必須 |
AzureEnvironment | Azure Stack Hub のデプロイに使用するサービス管理者アカウントの Azure 環境。 Microsoft Entraデプロイにのみ必要です。 サポートされている環境名は、AzureCloud、AzureUSGovernment、または中国のMicrosoft Entra ID AzureChinaCloud を使用している場合です。 | AzureCloud |
DependencyFilesLocalPath | 統合システムの場合のみ、証明書 .pfx ファイルはこのディレクトリにも配置する必要があります。 切断された環境では、mysql-connector-net-6.10.5.msi をこのディレクトリにダウンロードします。 必要に応じて、ここで 1 つの Windows Update MSU パッケージをコピーできます。 | 省略可能 (統合システムまたは切断された環境には 必須) |
DefaultSSLCertificatePassword | .pfx 証明書のパスワード。 | 必須 |
MaxRetryCount | エラーが 発生した場合に各操作を再試行する回数。 | 2 |
RetryDuration | 再試行間のタイムアウト間隔 (秒単位)。 | 120 |
アンインストール | リソース プロバイダーと関連付けられているすべてのリソースを削除します (以下のメモを参照してください)。 | いいえ |
DebugMode | 障害発生時に自動クリーンアップが行われないようにします。 | いいえ |
AcceptLicense | GPL ライセンスに同意するためのプロンプトをスキップします。 https://www.gnu.org/licenses/old-licenses/gpl-2.0.html |
カスタム スクリプトを使用して MySQL リソース プロバイダーをデプロイする
MySQL リソース プロバイダーのバージョン 1.1.33.0 以前のバージョンをデプロイする場合は、特定バージョンの AzureRm.BootStrapper と Azure Stack Hub モジュールを PowerShell にインストールする必要があります。
MySQL リソース プロバイダーのバージョン 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 -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 environment names are AzureCloud, AzureUSGovernment, or AzureChinaCloud.
$AzureEnvironment = "<EnvironmentName>"
# Point to the directory where the resource provider installation files were extracted.
$tempDir = 'C:\TEMP\MYSQLRP'
# 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 the credentials for the new resource provider VM local admin account
$vmLocalAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential ("mysqlrpadmin", $vmLocalAdminPass)
# And the cloudadmin credential 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\DeployMySQLProvider.ps1 `
-AzCredential $AdminCreds `
-VMLocalCredential $vmLocalAdminCreds `
-CloudAdminCredential $cloudAdminCreds `
-PrivilegedEndpoint $privilegedEndpoint `
-AzureEnvironment $AzureEnvironment `
-DefaultSSLCertificatePassword $PfxPass `
-DependencyFilesLocalPath $tempDir\cert `
-AcceptLicense
リソース プロバイダーのインストール スクリプトが終了したら、ブラウザーを最新の情報に更新します。これによって、最新の更新プログラムが表示され、現在の PowerShell セッションを終了できることを確認します。
Azure Stack Hub ポータルを使用して、V1 のデプロイを確認する
- 管理ポータルにサービス管理者としてサインインします。
- [リソース グループ] を選択します。
- system.<location>.mysqladapter リソース グループを選択します。
- リソース グループの概要の概要ページで、失敗したデプロイは表示されていないはずです。
- 最後に、管理者ポータルで [仮想マシン] を選択して、MySQL リソース プロバイダー VM が正常に作成され、実行されていることを確認します。
Microsoft Entra IDの重要な構成
Azure Stack Hub が ID プロバイダーとしてMicrosoft Entra IDを使用している場合は、MySQL Server リソース プロバイダーがインストールされている VM に送信インターネット接続があることを確認します。
MySQL Server リソース プロバイダーがインストールされている VM の IP を取得する必要がある場合は (つまり、ファイアウォールの許可リストに IP を追加する場合)、サポート ケースを開き、サポート エンジニアに MySQL Server リソース プロバイダーのサブスクリプションを一時的に表示してもらいます。 その後、サブスクリプションで VM を検索し、その IP を取得できます。