(四)搭建Website Cloud环境

1安装CONTROLLER主机

在开始安装Web site 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角色的程序:

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

下载完成后, 启动安装

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

然后进行配置:

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

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

 

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

本例设为 waplab.com。

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

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

如果出现如下错误提示:

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

也可以使用命令行来实现

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

观察Farm中各服务器的状态

待状态都是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

 

添加Publisher

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

 

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

在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)的更多相关文章

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

    (一)前言 本文主要介绍了实践部署AzurePack的Website Cloud的过程.在部署之前, 首先要对AzurePack有个基本的了解.   Azure Pack是微软的私有云方案,具有弹性. ...

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

    前言 (二)建立虚拟网络环境,以及域控和DNS服务器   1搭建虚拟网络环境 在Azure上创建虚拟网络.本例选择的是东南亚数据中心.后面在创建虚机的时候,也选择这个数据中心. VNet Name: ...

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

    (三) 搭建Windows Azure Pack环境 1安装SQL SERVER 2012 服务器 为简单起见,本例直接使用了Azure提供的具有SQLServer的Win2012 Server镜像来 ...

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

    (六)在Website Cloud中添加site 1新建Website,并打开 使用前面创建的用户 newbee@waplab.com 登录租户Portal,新建一个website 新建完成后, 可以 ...

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

    (五)注册Website Cloud 1 注册Website Cloud 添加Website Cloud   连接Website Cloud 注意, endpoint 是使用Management Se ...

  6. 在 Windows Azure 上部署预配置 Oracle VM

    Microsoft 和 Oracle 近期宣布建立战略合作伙伴关系,基于此,我们将通过 Windows Azure 镜像库推出多种常用的 Oracle 软件配置.即日起,客户可以在 Windows S ...

  7. 在Azure上部署IPv6的App通过IOS App Store审核

    随着中国企业出海Go Global,越来越多的用户开始在Global Azure部署自己的应用.由于对Global Azure功能和文档的不熟悉,使用过程中或多或少遇到了一些坑.事实上呢,这些并不是坑 ...

  8. Azure上部署FTP服务

    FTP是个比较复杂的协议,其协议分为控制层和数据层,工作模式分为主动和被动两种模式. 在默认的Active模式下其工作原理如下: 可以看到,客户端发起FTP的请求道服务器端,FTP的端口是21.用户在 ...

  9. Azure上部署Barracuda WAF集群 --- 2

    前面一篇文章讲了如何在Azure上部署Barracuda.这篇文章聊一聊如何配置Barracuda. License 向Barracuda的销售人员申请WAF的License.得到License后打开 ...

随机推荐

  1. iOS逆向工程之Reveal工具的安装、配置与使用

    今天博客内容比较简单,不过还是蛮重要的.经常有小伙伴在QQ上私下问我,说博客中是如何使用Reveal查看AppStore中下载应用的UI层级的,那么就在今天这篇博客中作为一个主题来统一的介绍一下吧.虽 ...

  2. 前端性能优化的另一种方式——HTTP2.0

    最近在读一本书叫<web性能权威指南>谷歌公司高性能团队核心成员的权威之作. 一直听说HTTP2.0,对此也仅仅是耳闻,没有具体研读过,这次正好有两个篇章,分别讲HTTP1.1和HTTP2 ...

  3. 关于sqlmap的使用

    好记性不如烂笔头,记录一下. 带cookie的注入 python sqlmap.py -u "http://www.xxx.com?id=1" --cookie="coo ...

  4. 一步步开发自己的博客 .NET版(3、注册登录功能)

    前言 这次开发的博客主要功能或特点:    第一:可以兼容各终端,特别是手机端.    第二:到时会用到大量html5,炫啊.    第三:导入博客园的精华文章,并做分类.(不要封我)    第四:做 ...

  5. MailKit---状态更改和删除

    当我们拉取邮件列表,并展示邮件后需要打开邮件,同时标识本邮件状态为已读状态,或者我们直接删除邮件.下面介绍基本的应用. 首先了解邮件的所有枚举状态:MailKit.MessageFlags包括:(No ...

  6. EventBus总线讲解

    在我们公司经常用到总线,具体的总线是什么让我理解我也不清楚,但是在这几个月下来,我已经知道总线如何使用,现在加上示例讲解总线如何使用. 1. 首先我们的新建一个类,这个类其实是用于总线传递的模型 us ...

  7. 学习WCF入门的第一个实例

    一.概述 WCF说白了就是一个基于终结点的通信手段!就是Service端提供一定的功能实现,然后暴露出一个或多个终结点,Client端调用Service端的功能(可以理解为调用一个函数),那么Clie ...

  8. 给 Android 研发的一些的建议

    作为应用程序开发人员,我们需要注意在开发应用程序时的一些问题. 这些问题的安全级别是取决于应用程序的类型和使用域. 在这里列举了一些我们在开发中需要注意的一些问题: 开发日志输出相关: 1. 不要在 ...

  9. TODO List - 任务表

    TODO List - 任务表 Angular1 --> Ionic1 --> Vue --> Weex Python --> Django --> Tornado -- ...

  10. WPF中异步更新UI元素

    XAML 界面很简单,只有一个按钮和一个lable元素,要实现点击button时,lable的内容从0开始自动递增. <Grid> <Label Name="lable_p ...