Azure Stack Hub 操作员访问工作站

操作员访问工作站 (OAW) 用于在 Azure Stack Hub 的硬件生命周期主机 (HLH) 上或运行 Microsoft Hyper-V 的任何其他计算机上部署虚拟机 (VM)。 它确实需要与 Azure Stack Hub 终结点进行网络连接才能用于操作员场景或用户场景。

OAW VM 是一个可选虚拟机,不是运行 Azure Stack Hub 所必需的。 它的用途是在操作员或用户与 Azure Stack Hub 进行交互时为其提供最新的工具。

OAW 方案

下表列出了 OAW 的常见方案。 使用远程桌面连接到 OAW。

方案 说明
访问管理门户 执行管理操作。
访问 PEP 日志收集和上传:
--。
-使用 Azure 存储资源管理器上传保存到 SMB 共享中的日志。
注册 Azure Stack Hub 若要重新注册,请从管理门户获取以前的注册名称和资源组。
市场联合 在 HLH 上创建 SMB 共享以存储下载的映像或扩展。
创建虚拟机 使用 Azure CLI 创建虚拟机。
管理 AKS 管理 AKS 群集(例如缩放或升级)。

预安装的软件

下表列出 OAW VM 上的预安装软件。

软件名称 位置
Microsoft Edge for Business [SystemDrive]\Program Files (x86)\Microsoft\Edge\Application
Az 模块 [SystemDrive]\ProgramFiles\WindowsPowerShell\Modules
PowerShell 7 [SystemDrive]\Program Files\PowerShell\7
Azure 命令行接口 (CLI) [SystemDrive]\Program Files (x86)\Microsoft SDKs\Azure\CLI2
Microsoft Azure 存储资源管理器 [SystemDrive]\Program Files (x86)\Microsoft Azure Storage Explorer
AzCopy [SystemDrive]\VMSoftware\azcopy_windows_amd64_*
AzureStack-Tools [SystemDrive]\VMSoftware\AzureStack-Tools

下载文件

若要获取文件以创建 OAW VM,请在此处下载。 下载之前,请务必查看 Microsoft 隐私声明法律条款

由于解决方案的无状态性质,没有适用于 OAW VM 的更新。 对于每个里程碑,都会发行 VM 映像文件的新版本。 使用最新版本创建新 OAW VM。 映像文件基于最新 Windows Server 2019 版本。 安装之后,可以使用 Windows 更新来应用更新(包括所有关键更新)。

验证下载的 OAW.zip 文件的哈希,以确保在使用它创建 OAW VM 之前未对它进行修改。 运行下面的 PowerShell 脚本。 如果返回值为 True,则可以使用下载的 OAW.zip:

注意

提取下载内容后取消阻止脚本文件。

param(
    [Parameter(Mandatory=$True)]
    [ValidateNotNullOrEmpty()]
    [ValidateScript({Test-Path $_ -PathType Leaf})]
    [string]
    $DownloadedOAWZipFilePath
)
$expectedHash = '73BE1564EE7357691A44DB3BD01AD5BB931CD029DE613EC6F564E8CDEA59F09D'
$actualHash = (Get-FileHash -Path $DownloadedOAWZipFilePath).Hash
Write-Host "Expected hash: $expectedHash"
if ($expectedHash -eq $actualHash)
{
    Write-Host 'SUCCESS: OAW.zip file hash matches.'
}
else
{
    Write-Error "ERROR: OAW.zip file hash does not match! It isn't safe to use it, please download it again. Actual hash: $actualHash"
}

将此脚本复制到环境的另一种方法是使用 AzureStack-Tools 中提供的 Test-FileHash cmdlet 来验证 OAW.zip 文件的哈希:

  1. 从 GitHub 下载 Test-FileHash.psm1 文件,然后运行:

    Import-Module .\Test-FileHash.psm1 -Force -Verbose
    
  2. 导入 Test-FileHash 模块后,验证 OAW.zip 文件的哈希:

    Test-FileHash -ExpectedHash "73BE1564EE7357691A44DB3BD01AD5BB931CD029DE613EC6F564E8CDEA59F09D" -FilePath "<path to the OAW.zip file>"
    

检查 HLH 版本

注意

若要确定是否在使用 Microsoft 映像或 OEM 映像部署的 HLH 上部署 OAW,必须执行此步骤。 在使用 OEM 映像部署的 HLH 上可能未提供此 PowerShell cmdlet。 如果在常规 Microsoft Hyper-V 上部署 OAW,则可以跳过此步骤。

  1. 使用你的凭据登录到 HLH。

  2. 打开 PowerShell ISE 并运行以下脚本:

    C:\Version\Get-Version.ps1
    

    例如:

    用于检查 OAW VM 版本的 PowerShell cmdlet 的屏幕截图。

使用脚本创建 OAW VM

以下脚本将准备用作操作员访问工作站 (OAW) 的虚拟机,该工作站用来访问 Microsoft Azure Stack Hub。

  1. 使用你的凭据登录到 HLH。

  2. 下载 OAW.zip 并提取文件。

  3. 打开提升的 PowerShell 会话。

  4. 导航到 OAW.zip 文件的已提取内容。

  5. 运行 New-OAW.ps1 脚本。

示例:在使用 Microsoft 映像的 HLH 上进行部署

$oawRootPath = "D:\oawtest"
$securePassword = Read-Host -Prompt "Enter password for Azure Stack OAW's local administrator" -AsSecureString

if (Get-ChildItem -Path $oawRootPath -Recurse | Get-Item -Stream Zone* -ErrorAction SilentlyContinue | Select-Object FileName)
{ Write-Host "Execution failed, unblock the script files first" }
else { .\New-OAW.ps1 -LocalAdministratorPassword $securePassword }

示例:在使用 OEM 映像的 HLH 上进行部署

$oawRootPath = "D:\oawtest"
$securePassword = Read-Host -Prompt "Enter password for Azure Stack OAW's local administrator" -AsSecureString

if (Get-ChildItem -Path $oawRootPath -Recurse | Get-Item -Stream Zone* -ErrorAction SilentlyContinue | Select-Object FileName)
{ Write-Host "Execution failed, unblock the script files first" }
else { .\New-OAW.ps1 -LocalAdministratorPassword $securePassword -AzureStackCertificatePath 'F:\certroot.cer' -DeploymentDataFilePath 'F:\DeploymentData.json' -AzSStampInfoFilePath 'F:\AzureStackStampInformation.json' }

如果 AzureStackStampInformation.json 文件包含 OAW VM 的命名前缀,则该值将用于 VirtualMachineName 参数。 否则,默认名称是 AzSOAW 或用户指定的任何名称。 如果 HLH 上没有,则可以使用AzureStackStampInformation.json重新创建 AzureStackStampInformation.json

注意

仅当使用企业证书颁发机构颁发的证书部署 Azure Stack Hub 时,才应使用参数 AzureStackCertificatePath。 如果 DeploymentData.json 不可用,请与硬件合作伙伴联系以检索它,或继续在 Microsoft Hyper-V 上执行示例部署。

示例:在 Microsoft Hyper-V 上进行部署

运行 Microsoft Hyper-V 的计算机需要四 (4) 个核心和二 (2) GB 可用内存。 PowerShell cmdlet 将创建 OAW VM,而不会将 IP 配置应用到来宾网络接口。 如果使用示例在 HLH 上预配 OAW,则必须配置部署 VM (DVM) 最初使用的 IP 地址,该地址通常是 BMC 网络的倒数第二个 IP。

示例 IP
BMC 网络 10.26.5.192/26
第一个主机 IP 10.26.5.193
最后一个主机 IP 10.26.5.254
DVM/OAW IP 10.26.5.253
子网掩码 255.255.255.192
默认网关 10.26.5.193
$oawRootPath = "D:\oawtest"
$securePassword = Read-Host -Prompt "Enter password for Azure Stack OAW's local administrator" -AsSecureString

if (Get-ChildItem -Path $oawRootPath -Recurse | Get-Item -Stream Zone* -ErrorAction SilentlyContinue | Select-Object FileName)
{ Write-Host "Execution failed, unblock the script files first" }
else { .\New-OAW.ps1 -LocalAdministratorPassword $securePassword -AzureStackCertificatePath 'F:\certroot.cer' `-SkipNetworkConfiguration -VirtualSwitchName Example }

注意

仅当使用企业证书颁发机构颁发的证书部署 Azure Stack Hub 时,才应使用参数 AzureStackCertificatePath。 OAW 虚拟机将在不带网络配置的情况下进行部署。 你可以配置静态 IP 地址,也可以通过 DHCP 检索 IP 地址。

用户帐户策略

以下用户帐户策略会应用于 OAW VM:

  • 内置管理员用户名:AdminUser
  • MinimumPasswordLength = 14
  • PasswordComplexity 已启用
  • MinimumPasswordAge = 1(天)
  • MaximumPasswordAge = 42(天)
  • NewGuestName = GUser(默认情况下禁用)

New-OAW cmdlet 参数

New-OAW 可以使用两个参数集。 可选参数显示在括号中。

New-OAW
-LocalAdministratorPassword <Security.SecureString> `
[-AzureStackCertificatePath <String>] `
[-AzSStampInfoFilePath <String>] `
[-CertificatePassword <Security.SecureString>] `
[-ERCSVMIP <String[]>] `
[-DNS <String[]>] `
[-DeploymentDataFilePath <String>] `
[-SkipNetworkConfiguration] `
[-ImageFilePath <String>] `
[-VirtualMachineName <String>] `
[-VirtualMachineMemory <int64>] `
[-VirtualProcessorCount <int>] `
[-VirtualMachineDiffDiskPath <String>] `
[-PhysicalAdapterMACAddress <String>] `
[-VirtualSwitchName <String>] `
[-ReCreate] `
[-AsJob] `
[-Passthru] `
[-WhatIf] `
[-Confirm] `
[<CommonParameters>]

New-OAW
-LocalAdministratorPassword <Security.SecureString> `
-IPAddress <String> `
-SubnetMask <String> `
-DefaultGateway <String> `
-DNS <String[]> `
-TimeServer<String> `
[-AzureStackCertificatePath <String>] `
[-AzSStampInfoFilePath <String>] `
[-CertificatePassword <Security.SecureString>] `
[-ERCSVMIP <String[]>] `
[-ImageFilePath <String>] `
[-VirtualMachineName <String>] `
[-VirtualMachineMemory <int64>] `
[-VirtualProcessorCount <int>] `
[-VirtualMachineDiffDiskPath <String>] `
[-PhysicalAdapterMACAddress <String>] `
[-VirtualSwitchName <String>] `
[-ReCreate] `
[-AsJob] `
[-Passthru] `
[-WhatIf] `
[-Confirm] `
[<CommonParameters>]

下表列出了每个参数的定义。

参数 必需/可选 说明
LocalAdministratorPassword 必须 虚拟机本地管理员帐户 AdminUser 的密码。
IPAddress 必须 用于在虚拟机上配置 TCP/IP 的静态 IPv4 地址。
SubnetMask 必须 用于在虚拟机上配置 TCP/IP 的 IPv4 子网掩码。
DefaultGateway 必须 用于在虚拟机上配置 TCP/IP 的默认网关的 IPv4 地址。
DNS 必须 用于在虚拟机上配置 TCP/IP 的 DNS 服务器。
TimeServer 必须 Azure Stack Hub 从中同步的时间服务器的 IP 地址,它也是 OAW 从中同步的时间源。 检查 AzureStackStampInformation.json,或请求管理员提供 Stack Hub 要从中同步的时间服务器的 IP。 在紧急情况下,如果无法获取 Stack Hub 要从中同步的时间服务器的 IP,可为此参数输入默认时间服务器“time.windows.com,0x8”。 请注意,强烈建议确保 OAW 和 Stack Hub 中的时间保持同步,以避免在 OAW 中与 Stack Hub 交互时出现潜在的时钟偏差问题。
ImageFilePath 可选 Microsoft 提供的 OAW.vhdx 的路径。 默认值为此脚本的相同父文件夹下的 OAW.vhdx。
VirtualMachineName 可选 要分配给虚拟机的名称。 如果可在 DeploymentData.json 文件中找到命名前缀,则将它用作默认名称。 否则,会将 AzSOAW 用作默认名称。 可以指定另一个名称以覆盖默认值。
VirtualMachineMemory 可选 要分配给虚拟机的内存。 默认值为 2 GB。
VirtualProcessorCount 可选 要分配给虚拟机的虚拟处理器数量。 默认值为 4。
VirtualMachineDiffDiskPath 可选 管理 VM 处于活动状态期间用于存储临时差异磁盘文件的路径。 默认值为此脚本的相同父文件夹下的 DiffDisks 子目录。
AzureStackCertificatePath 可选 要导入到虚拟机以进行 Azure Stack Hub 访问的证书的路径。
AzSStampInfoFilePath 可选 AzureStackStampInformation.json 文件的路径,脚本可以从该文件中检索 ERCS VM 的 IP。
CertificatePassword 可选 要导入到虚拟机以进行 Azure Stack Hub 访问的证书的密码。
ERCSVMIP 可选 要添加到虚拟机的受信任主机列表的 Azure Stack Hub ERCS VM 的 IP。 如果设置了 -SkipNetworkConfiguration,则不会生效。
SkipNetworkConfiguration 可选 跳过虚拟机的网络配置,使用户可以在以后配置。
DeploymentDataFilePath 可选 DeploymentData.json 的路径。 如果设置了 -SkipNetworkConfiguration,则不会生效。
PhysicalAdapterMACAddress 可选 用于将虚拟机连接到的主机网络适配器的 MAC 地址。
- 如果只有一个物理网络适配器,则不需要此参数,将使用唯一的网络适配器。
- 如果有多个物理网络适配器,则需要使用此参数来指定要使用的适配器。
VirtualSwitchName 可选 需要在 Hyper-V 中为虚拟机配置的虚拟交换机的名称。
- 如果存在具有所提供名称的 VMSwitch,则会选择此类 VMSwitch。
- 如果不存在具有所提供名称的 VMSwitch,则会使用提供的名称创建 VMSwitch。
Re-Create 可选 如果已存在具有相同名称的虚拟机,则删除并重新创建虚拟机。

检查 OAW VM 版本

  1. 使用你的凭据登录到 OAW VM。

  2. 打开 PowerShell ISE 并运行以下脚本:

    C:\Version\Get-Version.ps1
    

    例如:

    用于检查硬件生命周期主机版本的 PowerShell cmdlet 的屏幕截图。

在 HLH 与 OAW 之间传输文件

如果需要在 HLH 与 OAW 之间传输文件,请使用 New-SmbShare cmdlet 创建 SMB 共享。 New-SmbShare 会将文件系统文件夹作为服务器消息块 (SMB) 共享公开给远程客户端。 例如:

若要删除通过此 cmdlet 创建的共享,请使用 Remove-SmbShare cmdlet。

删除 OAW VM

以下脚本会删除用于访问 Azure Stack Hub 以进行管理和诊断的 OAW VM。 此脚本还会删除与 VM 关联的磁盘文件和保护者。

  1. 使用你的凭据登录到 HLH。

  2. 打开提升的 PowerShell 会话。

  3. 导航到已安装 OAW.zip 文件的已提取内容。

  4. 通过运行 Remove-OAW.ps1 脚本来删除 VM:

    .\Remove-OAW.ps1 -VirtualMachineName \<name\>
    

    其中 <name> 是要删除的虚拟机的名称。 默认情况下,名称是 AzSOAW。

    例如:

    .\Remove-OAW.ps1 -VirtualMachineName AzSOAW
    

后续步骤

Azure Stack 管理任务