本文介绍如何迁移到新的文件服务器基础结构,以便在 Azure Stack Hub 资源提供程序内容文件共享上托管 Azure 应用程序服务。
备份应用程序服务机密
从备份恢复应用程序服务时,必须提供初始部署所用的应用程序服务密钥。 成功部署应用程序服务并将其存储在安全位置后,应立即保存此信息。 在使用应用程序服务恢复 PowerShell cmdlet 进行恢复期间,将从备份重新创建资源提供程序基础结构配置。
请遵循以下步骤,使用管理门户备份应用程序服务机密:
以服务管理员身份登录到 Azure Stack Hub 管理员门户。
浏览到“应用程序服务”->“机密”。
选择“下载机密”。
准备好下应用程序服务,单击“保存”,并将应用程序服务机密 (SystemSecrets.JSON) 文件存储到安全位置。
注意
每次轮换应用程序服务机密时都需要重复这些步骤。
备份现有的应用程序服务文件共享
应用程序服务将租户应用信息存储在文件共享中。 此文件共享必须与应用程序服务数据库一起定期备份,以便尽可能少地丢失数据(如果需要还原或迁移)。
若要备份应用程序服务文件共享内容,请使用 Azure 备份服务器或其他方法,定期将文件共享内容复制到保存所有以前恢复信息的位置。
例如,可以运行这些命令,以从 Windows PowerShell(不是 PowerShell ISE)控制台会话使用 Robocopy:
$source = "<file share location>"
$destination = "<remote backup storage share location>"
net use $destination /user:<account to use to connect to the remote share in the format of domain\username> *
robocopy $source $destination
net use $destination /delete
将应用程序服务文件共享内容还原到新的文件服务器
准备新文件服务器以托管应用程序服务文件共享后,必须从备份还原租户文件共享内容。 可以通过任何可用方法将文件复制到新建的应用程序服务文件共享位置。 文件服务器上的此示例使用 PowerShell 和 Robocopy 连接到远程共享,并将文件复制到共享:
$source = "<remote backup storage share location>"
$destination = "<local file share location>"
net use $source /user:<account to use to connect to the remote share in the format of domain\username> *
robocopy /E $source $destination
net use $source /delete
除了复制文件共享内容以外,还必须重置文件共享本身的权限。 若要重置权限,请在文件服务器计算机上打开管理命令提示符,然后运行 ReACL.cmd 文件。 ReACL.cmd 文件位于 BCDR 目录下的应用程序服务安装文件中。
迁移文件共享
在 Azure Stack Hub 管理员门户中,导航到“网络安全组”,然后选择 ControllersNSG 网络安全组。
默认情况下,已对所有应用程序服务基础结构角色禁用远程桌面。 将“Inbound_Rdp_2289”规则操作修改为“允许”访问。
导航到包含应用程序服务资源提供程序部署的资源组(默认情况下,其名称为 AppService.<region>)并连接到 CN0-VM。
打开管理员 PowerShell 会话并运行 net stop webfarmservice。
针对所有其他控制器重复步骤 3 和 4。
返回到 CN0-VM 远程桌面会话。
将应用程序服务机密文件复制到控制器。
在管理员 PowerShell 会话中运行以下代码:
Restore-AppServiceStamp -FilePath <local secrets file> -OverrideContentShare <new file share location> -CoreBackupFilePath <filepath>
此时将出现一个提示,要求确认密钥值、验证并按 ENTER 键继续,或关闭 PowerShell 会话以取消。
cmdlet 运行后,将删除自定义辅助角色层中的所有辅助角色实例,然后通过下一个 PowerShell 脚本重新添加。
在同一个管理 PowerShell 会话或新的管理 PowerShell 会话中,运行:
Restore-AppServiceRoles
此命令会检查关联的虚拟机规模集并执行对应的操作,包括重新添加自定义辅助角色层的实例。
在同一个会话或新的管理 PowerShell 会话中,运行 net start webfarmservice 命令。
对所有其他控制器重复以上步骤。
在 Azure Stack 管理门户中,导航回“ControllersNSG”网络安全组。
修改“Inbound_Rdp_3389”规则以拒绝访问。
更新文件服务器凭据
如果凭据已更改,则必须更新文件共享凭据,以连接到新的文件服务器(FileShareOwnerCredential 和 FileShareUserCredential)。
- 在 Azure Stack 管理门户中,导航到“ControllersNSG”网络安全组。
- 默认情况下,已对所有应用程序服务基础结构角色禁用远程桌面访问。 将“Inbound_Rdp_3389”规则操作修改为“允许”访问。
- 导航到包含应用程序服务资源提供程序部署的资源组。 默认情况下,资源组以
AppService.<region>
格式命名,并连接到 CN0-VM。 - 启动“Web 云管理控制台”。
- 检查 Web 云管理控制台 -> Web 云屏幕,并验证两个控制器是否都已就绪。
- 选择“凭据”。
- 接下来,选择要更新的凭据。 在此示例中,选择 FileShareOwnerCrdential 或 FileShareUserCredential,然后从菜单栏或右键单击上下文菜单中选择“编辑”。
- 输入新的凭据详细信息,然后选择“确定”。
- 如果这也已更改,请针对 FileShareUserCredential 重复此操作。
- 完成凭据更新后,必须重新启动 CN0-VM。
- 等待 CN0-VM,并验证角色是否在管理员门户的>下标记为“就绪”。
- 重新启动 CN1-VM,然后验证角色是否标记为“就绪”
- 两个控制器都标记为“就绪”后,修复所有其他角色实例,一次一组,例如管理、前端等。
- 在 Azure Stack 管理门户中,导航回“ControllersNSG”网络安全组。
- 修改“Inbound_Rdp_3389”规则以拒绝访问。