在 Azure Stack 上部署 MySQL 资源提供程序

可以使用 MySQL Server 资源提供程序将 MySQL 数据库公开为 Azure Stack 服务。 MySQL 资源提供程序以服务的形式在 Windows Server 2016 Server Core 虚拟机 (VM) 上运行。

先决条件

需要先实施几个先决条件,然后才能部署 Azure Stack MySQL 资源提供程序。 若要满足这些要求,请在可访问特权终结点 VM 的计算机上完成本文中的步骤。

证书

仅适用于集成系统安装。 必须提供 Azure Stack 部署 PKI 要求中的“可选 PaaS 证书”部分所述的 SQL PaaS PKI 证书。 将 .pfx 文件放在 DependencyFilesLocalPath 参数指定的位置。 对于 ASDK 系统,请不要提供证书。

部署资源提供程序

安装所有必备组件后,请运行 DeployMySqlProvider.ps1 脚本以部署 MYSQL 资源提供程序。 DeployMySqlProvider.ps1 脚本是从针对 Azure Stack 版本下载的 MySQL 资源提供程序二进制文件中提取的。

若要部署 MySQL 资源提供程序,请打开一个权限提升的 PowerShell(不是 PowerShell ISE)新窗口,并切换到解压缩后的 MySQL 资源提供程序二进制文件所在的目录。 我们建议使用新的 PowerShell 窗口,以避免已加载的 PowerShell 模块造成问题。

运行 DeployMySqlProvider.ps1 脚本,以完成以下任务:

  • 将证书和其他项目上传到 Azure Stack 上的存储帐户。
  • 发布库包,以便可以使用库部署 MySQL 数据库。
  • 发布用于部署宿主服务器的库包。
  • 使用下载的 Windows Server 2016 核心映像部署 VM,然后安装 MySQL 资源提供程序。
  • 注册映射到资源提供程序 VM 的本地 DNS 记录。
  • 将资源提供程序注册到操作员帐户的本地 Azure 资源管理器。

Note

当 MySQL 资源提供程序部署开始时,将创建 system.local.mysqladapter 资源组。 可能需要花费多达 75 分钟才能完成此资源组的必需部署。

DeployMySqlProvider.ps1 参数

可以在命令行中指定这些参数。 如果未指定参数或任何参数验证失败,系统会提示提供所需的参数。

参数名称 说明 注释或默认值
CloudAdminCredential 访问特权终结点时所需的云管理员凭据。 必需
AzCredential Azure Stack 服务管理员帐户的凭据。 使用部署 Azure Stack 时所用的相同凭据。 必需
VMLocalCredential MySQL 资源提供程序 VM 的本地管理员帐户的凭据。 必需
PrivilegedEndpoint 特权终结点的 IP 地址或 DNS 名称。 必需
DependencyFilesLocalPath 对于集成系统,必须将证书 .pfx 文件放在此目录中。 对于已断开连接的环境,请将 mysql-connector-net-6.10.5.msi 下载到此目录。 还可以在此处复制一个 Windows Update MSU 包。 可选(对于集成系统或断开连接的系统,则为强制)
DefaultSSLCertificatePassword .pfx 证书的密码。 必需
MaxRetryCount 操作失败时,想要重试每个操作的次数。 2
RetryDuration 每两次重试的超时间隔(秒)。 120
卸载 删除资源提供程序和所有关联的资源(请参阅下面的注释)。
DebugMode 防止在失败时自动清除。
AcceptLicense 跳过接受 GPL 许可条款的提示。 http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

使用自定义脚本部署 MySQL 资源提供程序

若要在部署资源提供程序时消除任何手动配置,可以自定义以下脚本。 更改 Azure Stack 部署所需的默认帐户信息和密码。

# Install the AzureRM.Bootstrapper module, set the profile and install the AzureStack module
Install-Module -Name AzureRm.BootStrapper -Force
Use-AzureRmProfile -Profile 2017-03-09-profile
Install-Module -Name AzureStack -RequiredVersion 1.3.0

# Use the NetBIOS name for the Azure Stack domain. On the Azure Stack 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 virtual machines
$privilegedEndpoint = "AzS-ERCS01"

# 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.partner.onmschina.cn"
$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 administrator 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

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

资源提供程序安装脚本完成后,刷新浏览器,以确保能够看到最新的更新。

使用 Azure Stack 门户验证部署

  1. 以服务管理员身份登录到管理门户。
  2. 选择“资源组”
  3. 选择“system.<位置>.mysqladapter”资源组。
  4. 在资源组概述摘要页上,应当没有失败的部署。

后续步骤

添加宿主服务器