Azure 中的 SharePoint Intranet 服务器场,第 4 阶段:配置 SharePoint 服务器
适用于:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
在将 Intranet 专用 SharePoint Server 2016 场部署到 Azure 基础结构服务的这一阶段中,可以创建 SharePoint Server 2016 服务器并使用 SharePoint 配置向导来配置它们的角色。
必须先完成这一阶段,然后才能移至Azure 中的 SharePoint Intranet 服务器场,第 5 阶段:创建可用性组并添加 SharePoint 数据库。 有关所有阶段,请参阅 在 Azure 中使用 SQL Server Always On 可用性组部署 SharePoint Server 。
在 Azure 中创建 SharePoint 服务器虚拟机
有以下四个 SharePoint 服务器虚拟机:
两个 SharePoint 服务器虚拟机为前端和分布式缓存服务器
两个虚拟机用于搜索以及管理和托管 SharePoint 应用程序
用于每组服务器角色的两个 SharePoint 服务器可以提供高可用性。
使用以下 PowerShell 命令块在 Azure 中创建组件。 指定变量的值,删除 < 和 > 字符。 请注意,这些 PowerShell 命令块使用下表中的值:
表 R,用于资源组
表 V,用于虚拟网络设置
表 S,用于子网
表 I,用于静态 IP 地址
表 M,用于虚拟机
表 A(针对可用性集)
回顾一下,已在 Azure 中的 SharePoint Intranet 服务器场,第 2 阶段:配置域控制器中定义表 M,且已在 Azure 中的 SharePoint Intranet 服务器场,第 1 阶段:配置 Azure中定义表 R、V、S、I 和 A。
首先,配置内部负载均衡,以便 Azure 可以在两个前端服务器和分布式缓存服务器上均匀分配客户端流量。
注意
[!注意] 下面的命令集使用最新版 Azure PowerShell。 请参阅 Get started with Azure PowerShell cmdlets(Azure PowerShell cmdlet 使用入门)。
提供所有正确值后,在 Azure PowerShell 命令提示符处或本地计算机的 PowerShell 集成脚本环境 (ISE) 上运行生成块。
# Set up key variables
$locName="<Azure location of your SharePoint farm>"
$vnetName="<Table V - Item 1 - Value column>"
$subnetName="<Table S - Item 4 - Subnet name column>"
$privIP="<Table I - Item 3 - Value column>"
$rgName="<Table R - Item 5 - Resource group name column>"
$vnet=Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgName
$subnet=Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name $subnetName
$frontendIP=New-AzLoadBalancerFrontendIpConfig -Name "SharePointWebServers-LBFE" -PrivateIPAddress $privIP -Subnet $subnet
$beAddressPool=New-AzLoadBalancerBackendAddressPoolConfig -Name "SharePointWebServers-LBBE"
# This example assumes unsecured (HTTP-based) web traffic to the front end servers.
$healthProbe=New-AzLoadBalancerProbeConfig -Name "WebServersProbe" -Protocol "TCP" -Port 80 -IntervalInSeconds 15 -ProbeCount 2
$lbrule=New-AzLoadBalancerRuleConfig -Name "WebTraffic" -FrontendIpConfiguration $frontendIP -BackendAddressPool $beAddressPool -Probe $healthProbe -Protocol "TCP" -FrontendPort 80 -BackendPort 80
# To use TCP 443, comment the previous line and un-comment the next line
# $lbrule=New-AzLoadBalancerRuleConfig -Name "WebTraffic" -FrontendIpConfiguration $frontendIP -BackendAddressPool $beAddressPool -Probe $healthProbe -Protocol "TCP" -FrontendPort 443 -BackendPort 443
New-AzLoadBalancer -ResourceGroupName $rgName -Name "SharePointWebServers" -Location $locName -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe -FrontendIpConfiguration $frontendIP
接下来,将 DNS 地址记录添加到组织内部的 DNS 基础结构,用于将 SharePoint 场(如 spfarm.corp.contoso.com)的完全限定域名解析为分配给内部负载平衡器(表 I - 项目 3 的值)的 IP 地址。
使用下面的 Azure PowerShell 命令块为两个 SharePoint 应用程序服务器和搜索服务器创建虚拟机。 提供所有正确值后,在 Azure PowerShell 命令提示符处或本地计算机的 PowerShell ISE 上运行生成块。
# Set up variables common to both virtual machines
$locName="<Azure location of your SharePoint farm>"
$vnetName="<Table V - Item 1 - Value column>"
$subnetName="<Table S - Item 3 - Subnet name column>"
$avName="<Table A - Item 3 - Availability set name column>"
$rgNameTier="<Table R - Item 3 - Resource group name column>"
$rgNameInfra="<Table R - Item 5 - Resource group name column>"
$rgName=$rgNameInfra
$vnet=Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgName
$subnet=Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name $subnetName
$rgName=$rgNameTier
$avSet=Get-AzAvailabilitySet -Name $avName -ResourceGroupName $rgName
# Create the first application/search server
$vmName="<Table M - Item 6 - Virtual machine name column>"
$vmSize="<Table M - Item 6 - Minimum size column>"
$staticIP="<Table I - Item 8 - Value column>"
$diskStorageType="<Table M - Item 6 - Storage type column>"
$nic=New-AzNetworkInterface -Name ($vmName +"-NIC") -ResourceGroupName $rgName -Location $locName -Subnet $subnet -PrivateIpAddress $staticIP
$vm=New-AzVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
$vm=Set-AzVMOSDisk -VM $vm -Name ($vmName +"-OS") -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType $diskStorageType
$diskSize=100
$diskConfig=New-AzDiskConfig -AccountType $diskStorageType -Location $locName -CreateOption Empty -DiskSizeGB $diskSize
$dataDisk1=New-AzDisk -DiskName ($vmName + "-SPLogData") -Disk $diskConfig -ResourceGroupName $rgName
$vm=Add-AzVMDataDisk -VM $vm -Name ($vmName + "-SPLogData") -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1
$diskSize=200
$diskConfig=New-AzDiskConfig -AccountType $diskStorageType -Location $locName -CreateOption Empty -DiskSizeGB $diskSize
$dataDisk1=New-AzDisk -DiskName ($vmName + "-SPSearchData") -Disk $diskConfig -ResourceGroupName $rgName
$vm=Add-AzVMDataDisk -VM $vm -Name ($vmName + "-SPSearchData") -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 2
$cred=Get-Credential -Message "Type the name and password of the local administrator account for the first application server."
$vm=Set-AzVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm=Set-AzVMSourceImage -VM $vm -PublisherName MicrosoftSharePoint -Offer MicrosoftSharePointServer -Skus 2016 -Version "latest"
$vm=Add-AzVMNetworkInterface -VM $vm -Id $nic.Id
New-AzVM -ResourceGroupName $rgName -Location $locName -VM $vm
# Create the second application server
$vmName="<Table M - Item 7 - Virtual machine name column>"
$vmSize="<Table M - Item 7 - Minimum size column>"
$staticIP="<Table I - Item 9 - Value column>"
$diskStorageType="<Table M - Item 7 - Storage type column>"
$nic=New-AzNetworkInterface -Name ($vmName +"-NIC") -ResourceGroupName $rgName -Location $locName -Subnet $subnet -PrivateIpAddress $staticIP
$vm=New-AzVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
$vm=Set-AzVMOSDisk -VM $vm -Name ($vmName +"-OS") -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType $diskStorageType
$diskSize=100
$diskConfig=New-AzDiskConfig -AccountType $diskStorageType -Location $locName -CreateOption Empty -DiskSizeGB $diskSize
$dataDisk1=New-AzDisk -DiskName ($vmName + "-SPLogData") -Disk $diskConfig -ResourceGroupName $rgName
$vm=Add-AzVMDataDisk -VM $vm -Name ($vmName + "-SPLogData") -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1
$diskSize=200
$diskConfig=New-AzDiskConfig -AccountType $diskStorageType -Location $locName -CreateOption Empty -DiskSizeGB $diskSize
$dataDisk1=New-AzDisk -DiskName ($vmName + "-SPSearchData") -Disk $diskConfig -ResourceGroupName $rgName
$vm=Add-AzVMDataDisk -VM $vm -Name ($vmName + "-SPSearchData") -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 2
$cred=Get-Credential -Message "Type the name and password of the local administrator account for the second application server."
$vm=Set-AzVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm=Set-AzVMSourceImage -VM $vm -PublisherName MicrosoftSharePoint -Offer MicrosoftSharePointServer -Skus 2016 -Version "latest"
$vm=Add-AzVMNetworkInterface -VM $vm -Id $nic.Id
New-AzVM -ResourceGroupName $rgName -Location $locName -VM $vm
使用下面的 Azure PowerShell 命令块为两个 SharePoint 前端服务器和分布式缓存服务器创建虚拟机。 提供所有正确值后,在 Azure PowerShell 命令提示符处或本地计算机的 PowerShell ISE 上运行生成块。
# Set up variables common to both virtual machines
$locName="<Azure location of your SharePoint farm>"
$vnetName="<Table V - Item 1 - Value column>"
$subnetName="<Table S - Item 4 - Subnet name column>"
$avName="<Table A - Item 4 - Availability set name column>"
$rgNameTier="<Table R - Item 4 - Resource group name column>"
$rgNameInfra="<Table R - Item 5 - Resource group name column>"
$rgName=$rgNameInfra
$vnet=Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgName
$subnet=Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name $subnetName
$backendSubnet=Get-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork $vnet
$webLB=Get-AzLoadBalancer -ResourceGroupName $rgName -Name "SharePointWebServers"
$rgName=$rgNameTier
$avSet=Get-AzAvailabilitySet -Name $avName -ResourceGroupName $rgName
# Create the first front end and distributed cache server virtual machine
$vmName="<Table M - Item 8 - Virtual machine name column>"
$vmSize="<Table M - Item 8 - Minimum size column>"
$staticIP="<Table I - Item 10 - Value column>"
$diskStorageType="<Table M - Item 8 - Storage type column>"
$nic=New-AzNetworkInterface -Name ($vmName + "-NIC") -ResourceGroupName $rgName -Location $locName -Subnet $backendSubnet -LoadBalancerBackendAddressPool $webLB.BackendAddressPools[0] -PrivateIpAddress $staticIP
$vm=New-AzVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
$vm=Set-AzVMOSDisk -VM $vm -Name ($vmName +"-OS") -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType $diskStorageType
$diskSize=100
$diskConfig=New-AzDiskConfig -AccountType $diskStorageType -Location $locName -CreateOption Empty -DiskSizeGB $diskSize
$dataDisk1=New-AzDisk -DiskName ($vmName + "-SPLogData") -Disk $diskConfig -ResourceGroupName $rgName
$vm=Add-AzVMDataDisk -VM $vm -Name ($vmName + "-SPLogData") -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1
$cred=Get-Credential -Message "Type the name and password of the local administrator account for the first front end and distributed cache server."
$vm=Set-AzVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm=Set-AzVMSourceImage -VM $vm -PublisherName MicrosoftSharePoint -Offer MicrosoftSharePointServer -Skus 2016 -Version "latest"
$vm=Add-AzVMNetworkInterface -VM $vm -Id $nic.Id
New-AzVM -ResourceGroupName $rgName -Location $locName -VM $vm
# Create the second front end and distributed cache server virtual machine
$vmName="<Table M - Item 9 - Virtual machine name column>"
$vmSize="<Table M - Item 9 - Minimum size column>"
$staticIP="<Table I - Item 11 - Value column>"
$diskStorageType="<Table M - Item 9 - Storage type column>"
$nic=New-AzNetworkInterface -Name ($vmName + "-NIC") -ResourceGroupName $rgName -Location $locName -Subnet $backendSubnet -LoadBalancerBackendAddressPool $webLB.BackendAddressPools[0] -PrivateIpAddress $staticIP
$vm=New-AzVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
$vm=Set-AzVMOSDisk -VM $vm -Name ($vmName +"-OS") -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType $diskStorageType
$diskSize=100
$diskConfig=New-AzDiskConfig -AccountType $diskStorageType -Location $locName -CreateOption Empty -DiskSizeGB $diskSize
$dataDisk1=New-AzDisk -DiskName ($vmName + "-SPLogData") -Disk $diskConfig -ResourceGroupName $rgName
$vm=Add-AzVMDataDisk -VM $vm -Name ($vmName + "-SPLogData") -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1
$cred=Get-Credential -Message "Type the name and password of the local administrator account for the second front end and distributed cache server."
$vm=Set-AzVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm=Set-AzVMSourceImage -VM $vm -PublisherName MicrosoftSharePoint -Offer MicrosoftSharePointServer -Skus 2016 -Version "latest"
$vm=Add-AzVMNetworkInterface -VM $vm -Id $nic.Id
New-AzVM -ResourceGroupName $rgName -Location $locName -VM $vm
注意
[!注意] 由于这些虚拟机用于 Intranet 应用程序,所以不会为它们分配公共 IP 地址或 DNS 域名称标签,也不会将它们暴露给 Internet。 但是,这也意味着你无法从 Azure 门户与它们进行连接。 查看虚拟机的属性时"连接"选项不可用。 使用远程桌面连接附件或另一个远程桌面工具连接使用其专用 IP 地址或 Intranet DNS 名称的虚拟机。
对每个 SharePoint 服务器执行以下操作:
使用你选择的远程桌面客户端并创建一个远程桌面连接。 使用其 Intranet DNS 或计算机名称以及本地管理员帐户的凭据。
通过在连接的虚拟机的 Windows PowerShell 提示符处运行这些命令,将它加入到相应的 Active Directory 域。
$domName="<Active Directory domain name to join, such as corp.contoso.com>"
Add-Computer -DomainName $domName
Restart-Computer
请注意,必须在运行 Add-Computer 命令后提供域帐户凭据。
- 虚拟机重启后,使用 <域>/sp_farm_db帐户凭据创建远程桌面连接四次,每个 SharePoint 服务器一次。 已在 Azure 中的 SharePoint Intranet 服务器场,第 2 阶段:配置域控制器 中创建了这些凭据。
注意
[!注意] SharePoint 服务器是基于 SharePoint Server 2016 试用版映像创建的。 需要转换安装过程以使用 SharePoint Server 2016 标准版或企业版的零售或批量许可证密钥。 有关详细信息,请参阅 SharePoint 2016 许可。
接下来,需要向每个 SharePoint 服务器添加额外的数据磁盘。
对于第一个和第二个前端和分布式缓存服务器,在管理员级 Windows PowerShell 提示符处运行以下命令以初始化 F: 驱动器。
Get-Disk | Where PartitionStyle -eq "RAW" | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "SPLogData"
md F:\Logs
对于第一个和第二个应用和搜索服务器,在管理员级 Windows PowerShell 提示符处运行以下命令以初始化 F: 和 G: 驱动器。
$newDisks=Get-Disk | Where Partitionstyle -eq "RAW"
ForEach ($d in $newDisks) {
$diskNum=$d.Number - 1
Get-Disk $d.Number | Initialize-Disk -PartitionStyle GPT -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "DataDisk$diskNum"
}
md F:\Logs
md G:\Index
配置 SharePoint 场
在可以创建服务器场之前,至少必须将 SharePoint 的生成版本更新到 2016 年 11 月 PU。 此 PU 包含一个启用共享角色支持的功能包。 如果没有此更新,服务器只能配置为供单个角色使用。
下载并安装最新的 SharePoint Server 2016 更新(至少为 2016 年 11 月 PU)。
注意
[!注意] 每个月度更新均包含两个可下载的文件。 应下载并安装这两个文件,确保服务器场正确更新。 首先安装 Server Patch,然后是 MUI/Language patch。
下载后,请按照 Install a software update for SharePoint Server 2016(安装 SharePoint Server 2016 的软件更新)中的说明安装更新并升级 SharePoint 服务器虚拟机。 需要在所有四台服务器上完成这些步骤。
使用这些步骤将第一个 SharePoint 应用程序和搜索服务器(表 M - 项目 6)配置为场中的第一个服务器。
创建到第一个 SharePoint 应用程序和搜索服务器的远程桌面连接。
在“开始”屏幕中,输入 SharePoint,然后选择“ SharePoint 2016 产品配置向导”。
在“欢迎使用 SharePoint 产品”页上,选择“下一步”。
显示" SharePoint 产品配置向导"对话框,警告将重新启动或重置服务(如 IIS)。 选择“是”。
在“连接到服务器场”页上,选择“创建新服务器场”,然后选择“下一步”。
在“指定配置数据库设置”页上:
在 “数据库服务器”中,输入第一个 SQL Server 虚拟机的名称。
在 “用户名”中,输入 <域>\sp_farm_db。
在 “密码”中,输入sp_farm_db帐户密码。
记下" 数据库名称"字段中的值(默认为 SharePoint_Config)。 将需要为场中的其他服务器使用这个数据库名称。
选择“下一步”。
在 “指定服务器场安全设置” 页上,输入密码两次。 记下此密码并将其存储到安全位置以供将来参考。 选择“下一步”。
在 “指定服务器角色” 页上的“ 共享角色”中, 选择“ 带搜索的应用程序”, 然后选择“ 下一步”。
在 “配置 SharePoint 管理中心 Web 应用程序 ”页上,选择“ 下一步”。
显示" 正在完成 SharePoint 产品配置向导"页。 选择“下一步”。
显示" 配置 SharePoint 产品"页。 等待,直到完成配置过程。
在“配置成功”页上,选择“完成”。 启动新的管理网站。
在 “帮助使 SharePoint 变得更好 ”页上,若要参与客户体验改善计划,请做出选择,然后选择“ 确定”。
在“欢迎”页上,选择“ 启动向导”。
在“ 服务应用程序和服务 ”页上的“ 服务帐户”中,选择“ 使用现有托管帐户”,然后选择“ 下一步”。 可能需要几分钟才能显示下一页。
在 “创建网站集” 页上,在 “标题”中输入网站名称,然后选择“ 确定”。
在“ 完成服务器场配置向导” 页上,选择“ 完成”。 此时会显示 SharePoint 管理中心网页。
在 Internet Explorer 中打开新选项卡,在“地址”栏中,输入第一个 SharePoint 应用程序服务器>/的 http://< 名称,然后按 Enter。 You should see the default team site.
对第二个 SharePoint 应用程序和搜索服务器(表 M - 项目 7)执行以下过程:
创建到第二个 SharePoint 应用程序和搜索服务器的远程桌面连接。
在“开始”屏幕中,输入 SharePoint,然后选择“ SharePoint 2016 产品配置向导”。
在“欢迎使用 SharePoint 产品”页上,选择“下一步”。
显示" SharePoint 产品配置向导"对话框,警告将重新启动或重置服务(如 IIS)。 选择“是”。
在 “连接到服务器场 ”页上,选择“ 连接到现有服务器场”,然后选择“ 下一步”。
在“指定配置数据库设置”页上:
在 “数据库服务器”中,输入第一个 SQL Server 虚拟机的名称,然后选择“ 检索数据库名称”。
在 “数据库名称”中,从上一过程的步骤 6 中选择 SharePoint 数据库的名称。
选择“下一步”。
在 “指定服务器场安全设置” 页上的 “通行短语”中,输入上一过程步骤 8 中的通行短语。 选择“下一步”。
在 “指定服务器角色” 页上的“ 共享角色”中,选择“ 带搜索的应用程序”,然后选择“ 下一步”。
显示" 正在完成 SharePoint 产品配置向导"页。 选择“下一步”。
显示" 配置 SharePoint 产品"页。 等待,直到完成配置过程。
在“配置成功”页上,选择“完成”。
在 “初始服务器场配置 ”页上,选择“ 取消”。 此时会显示 “管理中心 ”页。
对两个前端和分布式缓存服务器(表 M - 项目 8 和 9)执行以下过程:
创建到 SharePoint 前端和分布式缓存服务器的远程桌面连接。
在“开始”屏幕中,输入 SharePoint,然后选择“ SharePoint 2016 产品配置向导”。
在“欢迎使用 SharePoint 产品”页上,选择“下一步”。
此时会显示 SharePoint 产品配置向导 对话框,警告服务 ((如 IIS) )将重启或重置。 选择“是”。
在 “连接到服务器场 ”页上,选择“ 连接到现有服务器场”,然后选择“ 下一步”。
在“指定配置数据库设置”页上:
在 “数据库服务器”中,输入第一个 SQL Server 虚拟机的名称,然后选择“ 检索数据库名称”。
在" 数据库名称"中,选择 SharePoint 数据库的名称。
选择“下一步”。
在 “指定服务器场安全设置” 页上的 “通行短语”中,输入场密码。
在 “指定服务器角色” 页上的“ 共享角色”中,选择“ 使用分布式缓存的前端”,然后选择“ 下一步”。
显示" 正在完成 SharePoint 产品配置向导"页。 选择“下一步”。
显示" 配置 SharePoint 产品"页。 等待,直到完成配置过程。
在“配置成功”页上,选择“完成”。
在 “初始服务器场配置 ”页上,选择“ 取消”。 此时会显示 “管理中心 ”页。
当 SharePoint 创建服务器场时,它在主要的 SQL Server 虚拟机上配置一组服务器登录名。 数据库本身存储所有数据库元数据和用户信息,在此数据库中定义的用户不必具有相应的登录名。 此数据库信息将由可用性组复制并且在故障转移之后可用。 有关详细信息,请参阅包含的数据库。
但是,默认情况下,SharePoint 数据库不是包含的数据库。 因此,将需要手动配置辅助数据库服务器,以使其与主要数据库服务器具有相同的一组 SharePoint 服务器场帐户登录名。 通过同时连接到这两台服务器,可以从 SQL Server Management Studio 执行此同步。
以下是这一阶段成功完成后生成的配置。
第 4 阶段:面向高可用性 SharePoint Server 2016 场的 SharePoint 服务器
后续步骤
使用Azure 中的 SharePoint Intranet 服务器场,第 5 阶段:创建可用性组并添加 SharePoint 数据库继续配置此工作负载。
另请参阅
其他资源
在 Azure 中为 SharePoint Server 部署 SQL Server“始终启用”可用性组
Microsoft Azure 中的 SharePoint Server