正如在上一篇文章里所说的,在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