Azure部署Azure Stack技巧

2019-04-24 14:09:33 浏览数 (1)

Azure Stack混合云的POC正式版已经发布了,盆盆已经写了十余篇有关Azure Stack的文章,您可以点击公众号右下方的菜单去阅读,有图有真相!

今天来讲讲在Azure上部署Azure Stack的技巧。

首先为什么要在Azure上部署Azure Stack?

大家知道Azure Stack的POC环境对硬件要求略高,而且由于部署在内网,访问起来也略有不便。所以Azure国际版推出支持嵌套虚拟化的Ev3和Dv3机型后,就可以拿来作为Azure Stack的部署平台。

这里推荐直接用Azure虚拟机作为Azure Stack的宿主机,本文不准备详细介绍如何在Azure上部署Azure Stack,而是着重于介绍其技巧。要了解如何在Azure上部署Azure Stack的详细步骤,可以在公众号里回复masonazure,即可查看详细步骤。

什么时候绕过物理机检测?

默认情况下,Azure Stack部署脚本会对主机进行检测,以便确认是否属于物理机,如果发现是虚拟机,则会拒绝执行。这里可以修改检测脚本,以便绕过物理机检测。

什么时候修改?需要等部署脚本执行,开始解压缩nuget包以后,到以下路径找到BareMetal.Tests.ps1脚本,将其中的3个$isVirtualizedDeployment参数前的"-not"删除。

C:CloudDeploymentRolesPhysicalMachinesTests

确保域控和宿主机时间同步

Azure Stack基础架构部署时,首先会创建域控,然后尝试将宿主机加入域。这时候可能会出现WINRM报错,如附图所示。

需要借助Hyper-V控制台登录到域控,执行Enable-WSManCredSSP -Role Server

同时盆盆还发现域控和宿主机可能会有时间不同步的问题,请登录到域控,在Server Core窗口里输入sconfig,然后输入9,即可查看时区和时间,请将时区和时间设置为和宿主机一样。

接下来回到宿主机,执行以下命令:

Set-Item wsman:localhostclienttrustedhosts -Value * Enable-WSManCredSSP -Role Client -DelegateComputer *

然后启动本地组策略编辑器,进入Local Computer Policy > Computer Configuration > Administrative Templates > System > Credential Delegation

启用Allow Delegating Fresh Credentials with NTLM-only Server Authentication 策略项并设置值为 WSMAN/*

完成后,用-rerun参数从断点重新启动Azure Stack的部署。

MonitoringAgent配置错误

如果Azure Stack部署时出现MonitoringAgent配置错误,应该是由于WINRM配置问题,导致部署脚本无法在宿主机上启动PowerShell Remote Session。

确保在宿主机上运行以下命令:

Enable-WSManCredSSP -Role Server Set-Item wsman:localhostclienttrustedhosts -Value * Enable-WSManCredSSP -Role Client -DelegateComputer *

并且确保在宿主机上启用以下组策略项,并都指定为wsman/*:

Allow Delegating Fresh Credentials Allow Delegating Fresh Credentials with NTLM-only Server Authentication

然后用-rerun参数从断点重新启动Azure Stack的部署。

如何实现和谐关机

由于Azure VM代价昂贵,所以不用时,一定记得关机。

但是如何关机,则大有讲究。不能直接关闭宿主机,否则可能导致Azure Stack工作不正常,这样就只能重装了!

可以在宿主机里,用以下命令,用PriviligedEndpoint登录到Azs-ERCS01这台虚拟机,然后执行Stop-AzureStack关机,这样系统会按照正确的顺序自己执行关机步骤,并且在下次启动时,执行正确的开启任务。将此处的密码改为部署时指定的参数。

$CloudAdminPass = ConvertTo-SecureString "YourPassword" -AsPlainText -Force $CloudAdminCreds = New-Object System.Management.Automation.PSCredential ("azurestackcloudadmin", $CloudAdminPass) enter-pssession -computername azs-ercs01 -credential $CloudAdminCreds -ConfigurationName PrivilegedEndpoint

等Azure VM(也就是宿主机)关机以后,建议回到Azure门户,对虚拟机执行deprovision的操作,以进一步降低费用。

开机出错怎么办?

如果按照上述说明执行和谐关机,然后重新开机,有时候还会出现问题怎么办?

有时候我们会遇到以下故障,租户门户和管理员门户有可能无法正常访问。

这时候需要查看这两个门户的IIS网站是否正常启动。管理员门户对应Azs-WAS01虚拟机,租户门户对应Azs-WASP01虚拟机,由于两台虚拟机都是Server Core,所以我们需要在宿主机里通过IIS管理器远程管理。

首先需要修改这两台虚拟机的注册表,确保将以下注册表键值设置为1。并且确保开启Web远程管理服务

然后用IIS管理器远程连接到这两台虚拟机。

分别查看应用程序池,并启动其中状态为Stopped的应用程序池。

接下来还需要确认XRP的微服务状态正常,请在宿主机里访问以下网址:

http://azs-xrp01:19007

然后在弹出对话框里指定用户名为azurestackadmin,密码为部署时指定的参数。

确保打开的Service Fabric Explorer界面里看不到任何错误,可能需要多刷新几次,如果发现CRP等服务有故障,只能重新部署。

然后回到管理员门户,查看是否有Alert。

0 人点赞