在 Azure Stack Hub 上部署 MySQL 資源提供者

重要

從 Azure Stack Hub 組建 2108 開始,提供 SQL 和 MySQL 資源提供者授與存取權的訂用帳戶。 若要開始使用這項功能,或需要從舊版升級,請開立支援案例,我們的支援工程師會引導您完成部署或升級程序。

使用 MySQL Server 資源提供者將 MySQL 資料庫公開成 Azure Stack Hub 服務。

MySQL 資源提供者在 Windows Server 2016 Server Core 虛擬機器上會以服務的形式執行。

MySQL 資源提供者在特殊附加元件 RP Windows Server 伺服器上會以服務的形式執行。

重要

僅資源提供者應在裝載 SQL 或 MySQL 的伺服器上建立項目。 在不是由資源提供者建立的主機伺服器上建立項目是不受支援的,且可能會導致不相符的狀態。

必要條件

如果您已安裝資源提供者,則可能已完成下列必要條件,並可略過本節。 否則,請先完成這些步驟再繼續:

  1. 如果尚未進行,請向 Azure 註冊您的 Azure Stack Hub 執行個體。 由於您會連線至 Azure 並將項目下載至市集,因此必須進行此步驟。

  2. 如果您不熟悉 Azure Stack Hub 管理員入口網站的 Marketplace 管理功能,請檢閱從 Azure 下載市集項目並發佈至 Azure Stack Hub。 本文將逐步引導您完成從 Azure 將項目下載到 Azure Stack Hub 市集的流程。 內容涵蓋已連線和已中斷連線兩種情況。 如果您的 Azure Stack Hub 執行個體已中斷連線或僅有部分連線,則在準備安裝時需要完成其他必要條件。

  3. 更新 Microsoft Entra 主目錄。 從組建 1910 開始,必須在您的主目錄租用戶中註冊新的應用程式。 此應用程式可讓 Azure Stack Hub 成功建立及註冊較新的資源提供者, (例如事件中樞和其他) 您的 Microsoft Entra 租使用者。 這是在升級至組建 1910 或更新版本之後,需要完成的一次性動作。 如果此步驟未完成,市集資源提供者的安裝將會失敗。

MySQL 伺服器資源提供者必要條件

  • 您需要能夠存取的電腦與帳戶:

    • Azure Stack Hub 管理員入口網站
    • (只有當您要部署 MySQL 伺服器資源提供者第 1 版或從 MySQL 伺服器資源提供者第 1 版升級至 MySQL 伺服器資源提供者第 2 版時,才需要) 具特殊權限的端點
    • Azure Resource Manager 管理員端點 (https://adminmanagement.region.<fqdn>),其中 <fqdn> 是您的完整網域名稱。
    • 如果您的 Azure Stack Hub 已部署為使用 Microsoft Entra 標識碼作為身分識別提供者,則為因特網。
  • 根據下面的版本對應表,下載支援的 MySQL 資源提供者二進位版本。 若為第 2 版 MySQL 資源提供者,請將市集項目下載至 Azure Stack Hub

    支援的 Azure Stack Hub 版本 MySQL RP 版本 執行 RP 服務的 Windows Server
    2206, 2301, 2306 MySQL RP 2.0.13.x 版 MicMicrosoft AzureStack 附加元件 RP Windows Server 1.2009.0
    2108, 2206 MySQL RP 2.0.6.x 版 MicMicrosoft AzureStack 附加元件 RP Windows Server 1.2009.0
  • 請確定已將所需的 Windows Server VM 下載至 Azure Stack Hub Marketplace。 視需要根據上面的版本對應表手動下載映像。

  • 請確定已符合資料中心整合必要條件:R

    必要條件 參考
    條件式 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.<region>.<fqdn>,並受到密碼保護。 憑證的螢幕快照。
    • 部署 MySQL 伺服器資源提供者第 1 版時,請將 .pfx 檔案放在 DependencyFilesLocalPath 參數所指定的位置。 不要提供 ASDK 系統的憑證。
    • 部署 MySQL 伺服器資源提供者第 2 版時,請準備憑證以進行下列安裝步驟。

中斷連線的案例

當您在已中斷連線的情況下部署 MySQL 伺服器資源提供者第 2 版時,請遵循將市集項目下載至 Azure Stack Hub 指示,以將 MySQL 伺服器資源提供者項目和附加元件 RP Windows Server 項目下載到 Azure Stack Hub 環境。

在中斷連線的情況下部署 MySQL 伺服器資源提供者第 1 版時,完成下列步驟以下載必要的 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" 
    

部署 MySQL 資源提供者第 2 版

如果您要從第 1 版升級,請參閱更新 MySQL 伺服器資源提供者一文。

開始安裝

  1. 如果您尚未安裝,請登入 Azure Stack Hub 管理員入口網站、選取左側的 [Marketplace 管理] ,然後選取 [資源提供者] 。

  2. 下載 MySQL 資源提供者和其他所需的軟體之後,市集管理會顯示「MySQL 伺服器資源提供者」套件,其狀態為「未安裝」。 可能有其他套件的狀態顯示為「已下載」。

    安裝 RP 之前市集管理的螢幕快照。

  3. 選取您要安裝的資料列。 [MySQL 伺服器資源提供者安裝套件] 頁面會在頂端顯示藍色橫幅。 選取橫幅以開始安裝。 市集管理開始安裝 RP 的螢幕快照。

安裝先決條件

  1. 接下來,系統會將您轉移至安裝頁面。 選取 [安裝必要條件] 以開始安裝流程。 市集管理安裝必要條件的螢幕快照。

  2. 稍待片刻,直到成功安裝必要條件。 在繼續下一個步驟之前,您應該會看到安裝必要條件旁出現綠色核取記號。 市集管理安裝必要條件成功的螢幕快照。

準備祕密

  1. 2.準備秘密步驟中,選取 [新增憑證] ,然後將會出現 [新增憑證] 面板。 市集管理準備秘密的螢幕快照。

  2. 選取 [新增憑證] 上的瀏覽按鈕,位於憑證檔案名稱欄位右側。 選取您在完成必要條件時所取得的 .pfx 憑證檔案。

  3. 輸入您提供的密碼,為 SQL Server 資源提供者 SSL 憑證建立安全字串。 然後選取 [新增] 。 市集管理新增憑證的螢幕快照。

設定並安裝資源提供者

  1. 當憑證安裝成功時,您應該會在繼續進行下一個步驟前,看到準備祕密旁出現綠色核取記號。 現在,選取 [3 安裝資源提供者]旁的 [設定 + 安裝] 按鈕。 市集管理啟動 RP 安裝的螢幕快照。

  2. 接下來,您必須提供 MySQL 連接器的 Azure Stack Hub Blob URI。

    • 請參閱此處的「MySQL 連接器的 GPL 授權」,並將版本8.0.21 下載至本機資料夾。

    • 使用您的預設操作員訂用帳戶建立儲存體帳戶,並建立具有「Blob」或「容器」存取層級的容器。 建立記憶體帳戶的螢幕快照。建立記憶體容器的螢幕快照。

    • 將本機資料夾中的 mysql-connector-net-8.0.21.msi 檔案上傳到新建立的儲存體容器。 將 MySQL 連接器上傳至容器的螢幕快照。

    重要

    請確定 MySQL 連接器的版本是 8.0.21。

    • 複製 Blob URI。 複製 MySQL 連接器 URI 的螢幕快照。

    • 返回至 MySQL RP 設定頁面。 將 Blob URI (例如 https://<storageAccountName>.blob.<region>.<FQDN>/<containerName>/mysql-connector-net-8.0.21.msi) 貼至文字方塊中,然後按一下 [確定]。 提供 MySQL 連接器 URI 的螢幕快照。

  3. 接下來,您會看到下列頁面,指出正在安裝 MySQL 資源提供者。 市集管理 RP 安裝的螢幕快照。

  4. 等待安裝完成通知。 此流程通常需要一或多個小時,視您的 Azure Stack Hub 類型而定。 Marketplace 管理 RP 安裝進行中的螢幕快照。

  5. 返回 [市集管理]、[資源提供者] 頁面,確認 MySQL 伺服器資源提供者安裝成功。 MySQL 伺服器資源提供者的狀態應該會顯示為「已安裝」。 已安裝市集管理 RP 的螢幕快照。

部署 SQL 資源提供者第 1 版

當您完成所有必要條件之後,請執行自我擷取程式,以將下載的安裝套件擷取至臨時目錄。 從可存取 Azure Stack Hub Azure Resource Manager 管理員端點和特殊權限端點的電腦執行 DeployMySqlProvider.ps1 指令碼,以部署 MySQL 資源提供者。 DeployMySqlProvider.ps1 指令碼是從您針對 Azure Stack Hub 版本下載的 MySQL 資源提供者安裝檔案中解壓縮而來。

重要

在部署資源提供者之前,請先檢閱版本資訊,以了解有哪些新功能、修正,以及任何可能對部署造成影響的已知問題。

若要部署 MySQL 資源提供者,請開啟新的已提升權限 PowerShell 視窗 (不是 PowerShell ISE),然後變更至您擷取 MySQL 資源提供者二進位檔的目錄。

重要

執行部署或更新指令碼前,強烈建議您使用 Clear-AzureRmContext -Scope CurrentUserClear-AzureRmContext -Scope Process 清除快取。

注意

如果您要在中斷連線的環境中部署 MySQL 伺服器資源提供者第 1 版,請將 mysql-connector-net-6.10.5.msi 檔案複製到本機路徑。 使用 DependencyFilesLocalPath 參數提供路徑名稱。

請執行 DeployMySqlProvider.ps1 指令碼,這會完成下列工作:

  • 將憑證和其他成品上傳到 Azure Stack Hub 上的儲存體帳戶。
  • 發佈資源庫套件,以便使用資源庫來部署 MySQL 資料庫。
  • 發佈用於部署主控伺服器的資源庫套件。
  • 使用您下載的 Windows Server 2016 核心映像或 Microsoft AzureStack 附加元件 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 部署。 支持的環境名稱為 AzureCloudAzureUSGovernment,或使用中國 Microsoft Entra 標識符 AzureChinaCloud AzureCloud
DependencyFilesLocalPath 您的憑證 .pfx 檔案必須放在這個目錄中 (僅適用於整合式系統)。 若是已中斷連線的環境,請將 mysql-connector-net-6.10.5.msi 下載到這個目錄。 您可以在這裡選擇性地複製一個 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 版或先前的版本,您必須在 PowerShell 中安裝特定版本的 AzureRm.BootStrapper 和 Azure Stack Hub 模組。

如果您要部署 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

注意

在中斷連線的情況下,您必須下載必要的 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 入口網站來確認第 1 版部署是否成功

  1. 以服務管理員身分登入管理員入口網站。
  2. 選取 [資源群組]。
  3. 選取 [system.位置>.mysqladapter] 資源群組。
  4. 在資源群組概觀的摘要頁面上,應該沒有失敗的部署。
  5. 最後,在管理員入口網站中選取 [虛擬機器],以驗證 MySQL 資源提供者 VM 已成功建立並執行。

Microsoft Entra識別碼的重要設定

如果您的 Azure Stack Hub 使用 Microsoft Entra 識別碼作為識別提供者,請確定已安裝 MySQL Server 資源提供者的 VM 具有輸出因特網連線能力。

如果需要取得已安裝 MySQL 伺服器資源提供者的 VM IP (亦即,將 IP 新增至防火牆允許清單),您必須開立支援案例,並讓支援工程師將 MySQL 伺服器資源提供者訂用帳戶設為暫時可見。 然後,您可以在訂用帳戶中找到 VM 並取得其 IP。

後續步驟

新增主機伺服器