在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

时间:2022-10-29 18:06:14

(四)搭建Website Cloud环境

1安装CONTROLLER主机

在开始安装Web site Cloud之前,读者应该对该服务的拓扑结构有个大概了解。

如图:

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

Controller是非常重要的一个角色, 它将用来完成其他角色的安装。 Controller可以在线装,也可以脱线安装。 本例中使用的是在线安装,关于脱线安装请参考MSDN相关文章。

由于Controller在配置的时候必须要指定文件服务器和管理服务器,所以在主机安装过程中,一最好一并装好。

Front End Server, Publish Server 以及Web Worker Role Server 也可以一并安装

安装主机的Power Shell VM Provisioning Script如下:

# Create Wap web site farm

 

$imgName="vmInit0"

$vnetName="waplab@sea2016"
# @SouthEast Asia

$wapLabSubNet="sitesubnet"
#{ctrl, wapsubnet, sitesubnet, reservedsubnet}

 

$cloudServiceName
=
"wapLabCloudService2016Feb"

$affinityGroupName
=
"southeastAsiaGroup"

$admin="vmadmin"

$pwd
=
"[Your Password]"

 

$sizeLarge
=
"Large"
#

$sizeMedium
=
"Medium"

$sizeSmall
=
"Small"

 

#domain

$domainName="waplab"

$domainJoin="waplab.com"
# Please ensure DNS is working fine!

$domainAdmin="domainadmin"

$domainAdminPwd="[Your Password]"

$domainOU="OU=AzureVMs,DC=waplab,DC=com"
#指定OU

 

 

$vmName
=
"wapsitecn1"

 

$vmsitecn1
=
New-AzureVMConfig
-Name
$vmName
-InstanceSize
$sizeMedium
-ImageName
$imgName

$vmsitecn1
|
Set-AzureSubnet
-SubnetNames
$wapLabSubNet

$vmsitecn1
|
Add-AzureProvisioningConfig
-WindowsDomain
-AdminUsername
$admin
-Password
$pwd
-Domain
$domainName `

-DomainUserName
$domainAdmin
-DomainPassword
$domainAdminPwd
-JoinDomain
$domainJoin `

-MachineObjectOU
$domainOU

#$vmsitecn1 | Add-AzureProvisioningConfig –§CWindows -AdminUsername $admin -Password $pwd

$vmsitecn1
|
New-AzureVM
-ServiceName
$cloudServiceName
-AffinityGroup
$affinityGroupName
-vNetName
$vnetName

 

 

 

$vmName
=
"wapsitemn1"

 

$vmsitemn1
=
New-AzureVMConfig
-Name
$vmName
-InstanceSize
$sizeMedium
-ImageName
$imgName

$vmsitemn1
|
Set-AzureSubnet
-SubnetNames
$wapLabSubNet

$vmsitemn1
|
Add-AzureProvisioningConfig
-WindowsDomain
-AdminUsername
$admin
-Password
$pwd
-Domain
$domainName `

-DomainUserName
$domainAdmin
-DomainPassword
$domainAdminPwd
-JoinDomain
$domainJoin `

-MachineObjectOU
$domainOU

#$vmsitecn1 | Add-AzureProvisioningConfig –§CWindows -AdminUsername $admin -Password $pwd

$vmsitemn1
|
New-AzureVM
-ServiceName
$cloudServiceName
-AffinityGroup
$affinityGroupName
-vNetName
$vnetName

 

 

 

$vmName
=
"wapsitefs1"

 

$vmsitefs1
=
New-AzureVMConfig
-Name
$vmName
-InstanceSize
$sizeSmall
-ImageName
$imgName

$vmsitefs1
|
Set-AzureSubnet
-SubnetNames
$wapLabSubNet

$vmsitefs1
|
Add-AzureProvisioningConfig
-WindowsDomain
-AdminUsername
$admin
-Password
$pwd
-Domain
$domainName `

-DomainUserName
$domainAdmin
-DomainPassword
$domainAdminPwd
-JoinDomain
$domainJoin `

-MachineObjectOU
$domainOU

#$vmsitecn1 | Add-AzureProvisioningConfig –§CWindows -AdminUsername $admin -Password $pwd

$vmsitefs1
|
New-AzureVM
-ServiceName
$cloudServiceName
-AffinityGroup
$affinityGroupName
-vNetName
$vnetName

 

 

 

$vmName
=
"wapsitefe1"

 

$vmsitefe1
=
New-AzureVMConfig
-Name
$vmName
-InstanceSize
$sizeSmall
-ImageName
$imgName

$vmsitefe1
|
Set-AzureSubnet
-SubnetNames
$wapLabSubNet

$vmsitefe1
|
Add-AzureProvisioningConfig
-WindowsDomain
-AdminUsername
$admin
-Password
$pwd
-Domain
$domainName `

-DomainUserName
$domainAdmin
-DomainPassword
$domainAdminPwd
-JoinDomain
$domainJoin `

-MachineObjectOU
$domainOU

#$vmsitecn1 | Add-AzureProvisioningConfig –§CWindows -AdminUsername $admin -Password $pwd

$vmsitefe1
|
New-AzureVM
-ServiceName
$cloudServiceName
-AffinityGroup
$affinityGroupName
-vNetName
$vnetName

 

 

 

$vmName
=
"wapsiteps1"

 

$vmsiteps1
=
New-AzureVMConfig
-Name
$vmName
-InstanceSize
$sizeSmall
-ImageName
$imgName

$vmsiteps1
|
Set-AzureSubnet
-SubnetNames
$wapLabSubNet

$vmsiteps1
|
Add-AzureProvisioningConfig
-WindowsDomain
-AdminUsername
$admin
-Password
$pwd
-Domain
$domainName `

-DomainUserName
$domainAdmin
-DomainPassword
$domainAdminPwd
-JoinDomain
$domainJoin `

-MachineObjectOU
$domainOU

#$vmsitecn1 | Add-AzureProvisioningConfig –§CWindows -AdminUsername $admin -Password $pwd

$vmsiteps1
|
New-AzureVM
-ServiceName
$cloudServiceName
-AffinityGroup
$affinityGroupName
-vNetName
$vnetName

 

 

$vmName
=
"wapsitewwS1"

 

$vmsitewwS1
=
New-AzureVMConfig
-Name
$vmName
-InstanceSize
$sizeSmall
-ImageName
$imgName

$vmsitewwS1
|
Set-AzureSubnet
-SubnetNames
$wapLabSubNet

$vmsitewwS1
|
Add-AzureProvisioningConfig
-WindowsDomain
-AdminUsername
$admin
-Password
$pwd
-Domain
$domainName `

-DomainUserName
$domainAdmin
-DomainPassword
$domainAdminPwd
-JoinDomain
$domainJoin `

-MachineObjectOU
$domainOU

$vmsitewwS1
|
New-AzureVM
-ServiceName
$cloudServiceName
-AffinityGroup
$affinityGroupName
-vNetName
$vnetName

 

##########################################################################

### EXTENSIONS

###########################################################################

## $vmName = "wapsitewwS2"

##

## $vmsitewwS2 = New-AzureVMConfig -Name $vmName -InstanceSize $sizeMedium -ImageName $imgName

## $vmsitewwS2 | Set-AzureSubnet -SubnetNames $wapLabSubNet

## $vmsitewwS2 | Add-AzureProvisioningConfig -WindowsDomain -AdminUsername $admin -Password $pwd -Domain $domainName `

## -DomainUserName $domainAdmin -DomainPassword $domainAdminPwd -JoinDomain $domainJoin `

## -MachineObjectOU $domainOU

## $vmsitewwS2 | New-AzureVM -ServiceName $cloudServiceName -AffinityGroup $affinityGroupName -vNetName $vnetName

##

##

## $vmName = "wapsitewwR1"

##

## $vmsitewwR1 = New-AzureVMConfig -Name $vmName -InstanceSize $sizeSmall -ImageName $imgName

## $vmsitewwR1 | Set-AzureSubnet -SubnetNames $wapLabSubNet

## $vmsitewwR1 | Add-AzureProvisioningConfig -WindowsDomain -AdminUsername $admin -Password $pwd -Domain $domainName `

## -DomainUserName $domainAdmin -DomainPassword $domainAdminPwd -JoinDomain $domainJoin `

## -MachineObjectOU $domainOU

## $vmsitewwR1 | New-AzureVM -ServiceName $cloudServiceName -AffinityGroup $affinityGroupName -vNetName $vnetName

##

##

## $vmName = "wapsitewwR2"

##

## $vmsitewwR2 = New-AzureVMConfig -Name $vmName -InstanceSize $sizeMedium -ImageName $imgName

## $vmsitewwR2 | Set-AzureSubnet -SubnetNames $wapLabSubNet

## $vmsitewwR2 | Add-AzureProvisioningConfig -WindowsDomain -AdminUsername $admin -Password $pwd -Domain $domainName `

## -DomainUserName $domainAdmin -DomainPassword $domainAdminPwd -JoinDomain $domainJoin `

## -MachineObjectOU $domainOU

## $vmsitewwR2 | New-AzureVM -ServiceName $cloudServiceName -AffinityGroup $affinityGroupName -vNetName $vnetName

##

## $vmName = "wapsitewwR3"

##

## $vmsitewwR3 = New-AzureVMConfig -Name $vmName -InstanceSize $sizeLarge -ImageName $imgName

## $vmsitewwR3 | Set-AzureSubnet -SubnetNames $wapLabSubNet

## $vmsitewwR3 | Add-AzureProvisioningConfig -WindowsDomain -AdminUsername $admin -Password $pwd -Domain $domainName `

## -DomainUserName $domainAdmin -DomainPassword $domainAdminPwd -JoinDomain $domainJoin `

## -MachineObjectOU $domainOU

## $vmsitewwR3 | New-AzureVM -ServiceName $cloudServiceName -AffinityGroup $affinityGroupName -vNetName $vnetName

 

 

2安装Management Server主机

参加上述步骤,$vmName
="wapsitemn1"

3安装File Server主机

参加上述步骤,$vmName
=
"wapsitefs1"

 

4安装Front End Server主机

参加上述步骤,$vmName
="wapsitefe1"

5安装Publish Server主机

参加上述步骤,$vmName
="wapsiteps1"

6安装Web Worker Server主机

参加上述步骤, $vmName
=
"wapsitewwS1"

 

7安装Controller相关程序

主机安装好后,远程桌面登陆, 使用Windows Platform Installer安装Controller角色的程序:

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

本例使用的是Websites V2 Update 7版本。后面可能随时会有新的版本发布,安装过程应该类似。

下载完成后, 启动安装

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

本例使用的是Install Locally下的Install Websites Controller。大概需要20多分钟,安装完成。

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

然后进行配置:

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

  1. Controller Type : Primary
  2. File Server Type: standalone (如果需要使用更好的文件服务,可以使用预配置的方式,请参考MSDN相关文章)
  3. 设置数据库,并指定数据库名称的前缀;本例使用的是2.1安装的SQL Server。

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

完成后, 在数据库浏览窗口中可以看到2个数据库:

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

 

  1. 设置站点的默认DNS后缀:

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

本例设为 waplab.com。

在前面的DNS解析中, 我们已经将*.waplab.com泛域名做了解析。

  1. 设置System Credentials,本例中默认使用的是vmadmin账号及相关密码。其中有个是Website Cloud的账号 cloudadmin, 在后面注册Website Cloud的时候会使用到。
  2. 添加文件服务器wapsitefs和管理服务器wapsitemn

如果出现如下错误提示:

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

需要在相关服务器的管理工具中设置允许远程管理:

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

也可以使用命令行来实现

  1. 安装完成后, 可以打开Website Management Console(桌面可以找到快捷方式),并启动Web Farm Controller Service.

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

观察Farm中各服务器的状态

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

待状态都是Ready的时候, 就可以在前面WAP Admin Portal中注册这个Website Cloud了。如果没有Ready,注册会失败。注册过程,请参考后文中的描述。

 

8配置Controller,添加各个Role的Server

添加Front End Role,Publish Role 或者Web worker Role 都即可以在Admin Portal上完成,也可以在Website Cloud Console中完成。本例中使用的是后者。

添加Front End

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

 

添加Publisher

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

添加Web worker,并指定Mode
为Shared, Size为Small

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

 

将来如果添加了多个Web worker, Mode和Size是可以由Tenant来选择使用的。