当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 构建 Exchange 2019 实验室环境

作者:精品下载站 日期:2024-12-14 04:05:39 浏览:15 分类:玩电脑

构建 Exchange 2019 实验室环境


寻找经济高效的测试环境

我们许多人都会遇到公司使用其生产环境进行测试的场景。换句话说,现场环境变成了实验室。虽然这对某些人来说可能是一个经济现实,但还有一些值得探索的替代方案,可以在不花太多钱的情况下提供合适的实验室设置。

实验室的目的是拥有一个安全的测试环境,不会影响生产服务。不同的场景产生不同的要求。例如,要通过 telnet 测试 SMTP 提交,我们不需要复杂性。另一方面,为了测试数据库可用性组(DAG)更新和修补,我们至少需要一个两个节点的 DAG。

Microsoft 对 Exchange 2019 的最低推荐指导是 128 GB RAM,用于在内存中缓存大量数据。我原来的 32 GB Hyper-V 主机能够通过域控制器、Exchange 服务器和 Windows 10 客户端运行三个虚拟机方案,但由于内存要求而无法工作。

在描述我的解决方案之前,我应该解释一下原因和方法。 Exchange Server 本地组织需要在某个地方来测试场景,例如更新 Exchange、测试配置以及偶尔运行“假设”类型的测试。例如,如果我修补 DAG 节点并且数据库索引损坏或修补程序引入滚动重新启动,或者我想测试我的灾难恢复程序是否有效,会发生什么情况?本文根据我的经验,专门提供了有关构建 Exchange 2019 实验室环境的更多指导。

迈向成熟的赛格威

成熟的环境往往有多个使用层。在编写代码时,我们可能会使用四层或更多层的测试,包括用户验收测试 (UAT),但为了测试 Exchange 2019,我们将自己限制为三层:

  • DEV(或开发)在这里运行最不安全的代码。这些环境在用于测试特定场景后通常会被拆除。
  • 测试 - 顾名思义,这是我们在开发中运行代码后验证代码的地方,以确保其可以投入生产。通常,这些环境的特征更接近生产中的情况,即使测试服务器是虚拟的而生产服务器是物理的。
  • 现场表演或制作!我们不再进行测试。在这一层中,运行的软件和流程非常适合在生产机器上运行。

此处为 Exchange 2019 提供的指南适合前两种场景:开发和测试。在稍后阶段,我会提供实施安全测试环境的指导。

阅读更多内容:如何为 SMTP 匿名中继配置 Exchange Server 2019,其中介绍了如何基于 AutomatedLab 框架测试此场景。

重复过去

Steve Goodman 关于以不到 500 美元构建廉价实验室服务器的优秀文章解释了您需要的物理环境。假设您拥有此类服务器或正在使用 Hyper-V(或希望使用 Hyper-V)进行测试,但不关心永久实验室硬件。另外假设您会受益于了解如何构建实验室来测试 Exchange,即使不使用我们的脚本。读完本文后,您应该具备在硬件或 Microsoft Azure 中的嵌套虚拟机主机上运行的自动化实验室平台所需的知识。

如果$Lab =“硬件”

使用物理硬件构建实验室非常简单!安装 Windows Server 2016/2019/2022/Windows 10/Windows 11 后,打开提升的 PowerShell 会话并运行以下命令来安装 PowerShell 和 DCIM,然后根据需要重新启动:

Install-WindowsFeature -Name DHCP,Hyper-V  –IncludeManagementTools
dism /Online /Enable-Feature /FeatureName:Microsoft-Hyper-V /All

在执行其他操作之前,请确保您了解希望 AutomatedLab 存储 ISO 和虚拟机的位置。您可以使用较大且较慢的磁盘作为 ISO 驱动器,并使用快速的 SSD 作为实验室虚拟机。就我而言,我为两者使用单个大型 SSD。

导航到自动化实验室安装页面并向前推进可能很诱人,但不要这么做。安装页面提到了两种安装类型,MSI和PowerShell。使用这两种方法后,我可以说朋友不让朋友使用MSI安装程序安装PowerShell模块。原因很简单,AutomatedLab 主要基于 PowerShell,这使得使用 MSI 方法进行更新以及设置路径和驱动器等环境变量变得非常痛苦。

在安装过程中,使用以下命令将驱动器 E 设置为 ISO 和源脚本所在的位置:

New-LabSourcesFolder -DriveLetter E

每个独立的自动化实验室集都通过使用 -VmPath 参数运行 New-LabDefinition cmdlet 来定义 LAB 位置。例如:

New-LabDefinition -Name LabEx2019 -DefaultVirtualizationEngine HyperV -VmPath 'E:\AutomatedLab-VMs'

注意:Automated-Lab 的安装会配置多个本地计算机策略以启用实验室主机远程处理。如果这些策略超出了本地安全策略的范围,请考虑在 Azure 中运行隔离环境。

以下是该脚本的缩写版本 - 删除 Linux 引用,并将 LabSources 文件夹设置到 E: 驱动器:

Install-PackageProvider Nuget -Force
# SkipPublisherCheck: AutomatedLabTest requires Pester v5. On system where Pester v3 is still the only versions, you will get an error if the parameter is not present
# AllowClobber: On some occasions, other modules seem to have published ConvertTo-Json/ConvertFrom-Json, which is overwritten by Newtonsoft.Json
Install-Module AutomatedLab -SkipPublisherCheck -AllowClobber
#region Non-interactive host
# Pre-configure telemetry
if ($IsLinux -or $IsMacOs)
{
    # Disable (which is already the default) and in addition skip dialog
    $null = New-Item -ItemType File -Path "$((Get-PSFConfigValue -FullName AutomatedLab.LabAppDataRoot))/telemetry.disabled" -Force
    # Enable
    $null = New-Item -ItemType File -Path "$((Get-PSFConfigValue -FullName AutomatedLab.LabAppDataRoot))/telemetry.enabled" -Force
}
else
{
    #  Disable (which is already the default) and in addition skip dialog
    [Environment]::SetEnvironmentVariable('AUTOMATEDLAB_TELEMETRY_OPTIN', 'false', 'Machine')
    $env:AUTOMATEDLAB_TELEMETRY_OPTIN = 'false'
    # Enable
    [Environment]::SetEnvironmentVariable('AUTOMATEDLAB_TELEMETRY_OPTIN', 'true', 'Machine')
    $env:AUTOMATEDLAB_TELEMETRY_OPTIN = 'true'
}
# Pre-configure Lab Host Remoting
Enable-LabHostRemoting -Force
# Using Azure: Pre-configure Lab Sources Synchronization
# Get/Set/Register/Unregister-PSFConfig -Module AutomatedLab -Name LabSourcesMaxFileSizeMb
# Get/Set/Register/Unregister-PSFConfig -Module AutomatedLab -Name LabSourcesSyncIntervalDays
# Get/Set/Register/Unregister-PSFConfig -Module AutomatedLab -Name AutoSyncLabSources
#endregion
# Windows
New-LabSourcesFolder -DriveLetter E

图 1 显示了您可以预期的安装输出类型:

[玩转系统] 构建 Exchange 2019 实验室环境

接下来,您应该阅读自动化实验室入门页面。本指南将您所需的操作系统 ISO 复制到 E:\LabSources\ISOs 中,其中“E:”代表您使用 New-LabSources cmdlet 定义的驱动器号。 入门页面还包含有关测试 ISO 和安装第一个实验室的建议,以及一些更重要的技能,例如完成后删除实验室。

此安装的硬件部分已有效完成。首先,从 AutomatedLab 下载示例 Exchange 2019 脚本或使用 Practical 365 脚本之一。

如果$Lab =“Azure”

从 Azure 开始也非常简单。是的,我知道我在重复自己,但请考虑不必购买或部署任何物理硬件。在此场景中,我使用 Microsoft Azure 中的嵌套虚拟化主机。我确实认识到,就不利用 Azure 结构来创建和维护虚拟机而言,这种方法类似于给猪涂口红。然而,关键是我们重用了我们所知道的有关本地虚拟化的所有内容,而无需更改现有实验室中的一行代码。

为了确保实验室正常工作,我们需要注意 Azure 中的网络限制。我们创建的来宾仅使用内部虚拟交换机,不会暴露于互联网或其他 Azure 子网。

因此,从超线程且能够运行嵌套虚拟化的虚拟机系列入手至关重要。在我的示例中,我选择了运行 Windows Server 2019 的“标准 E16-4ds v5”(4 个 vcpu、128 GiB 内存)(图 2:)

[玩转系统] 构建 Exchange 2019 实验室环境

具有基于 SSD 的存储的虚拟机,这对于我们实验室的性能至关重要。单个磁盘无法提供我们需要的 IOP 数量,也不够大,因此我们向虚拟机添加额外的磁盘。我分配“E:”驱动器号以保持所有实验室配置一致(图 3:)

[玩转系统] 构建 Exchange 2019 实验室环境

由于我们使用 RDP,因此我们立即编辑默认网络配置。第一条规则是,我们需要编辑规则(图 4)。如果您选择保持此规则不变,您的主机可能会在短时间内受到损害,或者至少面临潜在的 RDP 暴力攻击。

[玩转系统] 构建 Exchange 2019 实验室环境

编辑规则使用图 5 中所示的对话框。您应该将源更改为外部 IP 并保存更新的配置。

[玩转系统] 构建 Exchange 2019 实验室环境

接下来,导航到连接选项卡,其中第一个选项显示 RDP 下载。继续下载 RDP 文件并连接到新的实验室主机(图 6:)

[玩转系统] 构建 Exchange 2019 实验室环境

如之前所述,继续安装 Hyper-V。

如果您按照指导进行操作,就会得到支持 Hyper-V 的主机配置,能够执行 Exchange 2019 的自动化实验室方案。主机不需要很长时间即可启动,并且在测试完成后也可以轻松删除。

Exchange 2019 实验室环境的结论

本文讨论了对可重复实验室场景的需求,要求在需要时创建实验室平台并在完成后对其进行处置。我根据我的经验解释了如何在物理硬件和能够进行嵌套虚拟化的 Azure 虚拟机上创建实验室平台。

Azure 方法的优点是能够随意启动实验室来测试所需的场景,非常方便。这种便利的缺点是它可能很昂贵,尤其是当您让虚拟机保持运行时。因此,Azure 是短期实验室测试场景(例如开发和测试层)的便捷解决方案,但可能不是长期使用的最佳选择。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯