在Azure新的Region上安装部署Azure Stack开发工具包的第二种方法
2018-05-02

正如在上一篇文章里所说的,在Azure上部署Azure Stack 开发包有两种方法,上一篇文章介绍了怎么在Azure的虚机上直接部署Azure Stack开发包,这里要介绍怎么利用嵌套的虚机来部署Azure Stack开发包

 

首先我们需要一台支持虚拟化嵌套的Azure虚机,目前只有新Region的DV3和EV3这两个系列支持,而且Azure Stack开发包的资源需求较大,所以建议至少选择32 vCPU的虚机,为了保证性能,64 vCPU是比较推荐的。 


等到虚机创建结束,首先要为这台虚机加上一个数据盘,用来部署Azure Stack开发包,考虑到容量需求,Azure Stack开发包需要的系统盘空间至少200G,用作存储资源至少需要4个盘,每个盘不小于250G,因此这个数据盘最小也要1T,越大越好。

 


 

然后在这台虚机上安装Hyper-V组件,这里就不详述了。



将新加入的磁盘初始化,默认应该为分配到F盘。



然后等待Hyper-V组件安装完毕后重启虚机并再次登陆系统,执行以下命令来创建虚机交换机,设置NAT:

New-VMSwitch -switchname"Azurestackswitch" -SwitchType Internal

New-NetIPAddress -IPAddress 172.12.12.1-PrefixLength 24 -InterfaceAlias "vEthernet (Azurestackswitch)"

New-NetNat -Name AzNatnetwork-InternalIPInterfaceAddressPrefix 172.12.12.0/24

结果如下:

 

然后为即将安装的Azure Stack Host虚机创建一个NAT,以后就可以通过这台虚机的公网IP直接访问Azure Stack的虚机了。

Add-NetNatStaticMapping -NatName"AzNatnetwork" -Protocol TCP -ExternalIPAddress 0.0.0.0-InternalIPAddress 172.12.12.12 -InternalPort 3389 -ExternalPort 3390

 

当然,不要忘了为这个新开的端口配置NSG策略

 

然后记得下载Azure Stack开发包,并解压缩到F盘上,可以在ASDK网站上找到下载软件:

https://azure.microsoft.com/zh-cn/overview/azure-stack/development-kit/

或者可以在这里找到:https://lyqblog.blob.core.chinacloudapi.cn/lyqblog/AzureStackDownloader.exe

 

准备工作做好,就可以创建Azure Stack开发包的宿主虚机了,记得一定要放在新加的F盘上

 

内存可以尽量配置的大一些

 

连接到刚才创建的虚拟交换机上

 

先不要附加硬盘,以后再把Azure Stack的镜像加上去。

 

将Azure Stack Host虚机的vCPU改大,至少需要12 core,后继需要改动检测脚本来确保可以安装。

 

将刚才解压的Azure Stack开发包镜像加到虚机上。


 

并且编辑镜像的参数,设置这个磁盘扩展到200G以上

 

完成以上工作后,就可以启动Azure Stack Host虚机,登录后设置IP和DNS解析:

IP地址: 172.12.12.12,掩码: 255.255.255.0,网关地址: 172.12.12.1, DNS:8.8.8.8

然后在Server Manager的LocalServer里去disable掉 IE enhanced的secturity设置


因为是测试环境,我们就顺手把系统防火墙也关掉,便于访问。

 

完成以上操作后,就可以关掉Azure Stack Host虚机的电源,进行下一步的操作。

 

回到Azure上的虚机,用以下命令创建至少4个虚拟磁盘,并附加到Azure Stack Host虚机上:

$Diskc = 1..8

foreach ($x in $Diskc)

{

   New-VHD -Path F:\AzurestackDisk\Data$x.vhdx -Dynamic -SizeBytes 250GB

   Add-VMHardDiskDrive -VMName "AzurestackHOST" -Path"F:\AzurestackDisk\Data$x.vhdX"

}

 

因为嵌套虚拟化需要设置一些参数,例如Mac Address 的Spoofing,相关条件设置已经被做成了脚本,我们可以从Github上下载来执行:

[Net.ServicePointManager]::SecurityProtocol= [Net.SecurityProtocolType]::Tls12

Invoke-WebRequest -uri"https://raw.githubusercontent.com/MicrosoftDocs/Virtualization-Documentation/live/hyperv-tools/Nested/Enable-NestedVm.ps1"-OutFile ~/Enable-NestedVM.ps1

.\Enable-NestedVM.ps1 -vmName"AzurestackHOST"

 

执行完成后就可以开启Azure Stack Host虚机,还记得我们做了NAT策略,所以可以直接登录了:

 

登录后先把刚才附加的一堆虚拟磁盘初始化:

Get-Disk | Initialize-Disk

 

然后进入C:\CloudDeployment\Setup 目录,执行 .\BootstrapAzureStackDeployment.ps1,将安装脚本解压。

 

因为安装脚本都是为了在物理服务器上部署Azure Stack开发包准备的,当检测到虚拟机环境或资源配置不符合要求就会停止执行,因此我们需要修改一下脚本,来保证即使检测到虚拟机也可以正常运行,

首先进入 C:\CloudDeployment\Roles\PhysicalMachines\Tests目录,编辑BareMetal.tests.ps1脚本,


在脚本中找到 $isVirtualizedDeployment,将前面的 -not 删掉,记得在这个脚本里要删掉三处 -not

 

还有一处地方需求修改,在这个脚本里找到 “number of cores”这一段,

将下面的“Should Not BeLessThan$minimumNumberOfCoresPerMachine” 改成 “Should NotBeLessThan 0”

 

接下来就可以执行安装脚本了:

.\InstallAzureStackPOC.ps1 -UseADFS-NATIPv4Subnet 172.12.12.0/24 -NATIPv4Address 172.12.12.233-NATIPv4DefaultGateway 172.12.12.1 -DNSForwarder 8.8.8.8 -TimeServer193.228.143.23

 

按提示输入管理员密码,然后就静静的等待安装执行完毕。

 

然后等到系统自动退出以后,从远程桌面用azurestack\azurestackadmin登录

 

慢慢等待系统安装完成就可以了。

原文: https://mp.weixin.qq.com/s/ybZswJKxWnyEt1Jox8gHdw