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 日志收集和上传:
-在 HLH 上创建 SMB 共享,以便从 Azure Stack Hub 传输文件。
-使用 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 存储资源管理器
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 = '4B5CE0EA6FA12C4A95EBDE4223BEED5B9D98D7D9FC7DA1D5C72D3620725E5119'
$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 "4B5CE0EA6FA12C4A95EBDE4223BEED5B9D98D7D9FC7DA1D5C72D3620725E5119" -FilePath "<path to the OAW.zip file>"
    

检查 HLH 版本

注意

此步骤对于确定是否在使用Microsoft映像或 OEM 映像部署的 HLH 上部署 OAW 非常重要。 此 PowerShell cmdlet 不存在于使用 OEM 映像部署的 HLH 上。 如果在常规Microsoft Hyper-V 上部署 OAW,则可以跳过此步骤。

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

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

    C:\Version\Get-Version.ps1
    

    例如:

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

使用脚本创建 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

注意

仅当使用从企业证书颁发机构颁发的证书部署 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 地址,该 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 的密码。
IP地址 必须 在虚拟机上配置 TCP/IP 的静态 IPv4 地址。
SubnetMask 必须 用于在虚拟机上配置 TCP/IP 的 IPv4 子网掩码。
DefaultGateway 必须 默认网关的 IPv4 地址,用于在虚拟机上配置 TCP/IP。
DNS 必须 用于在虚拟机上配置 TCP/IP 的 DNS 服务器。
TimeServer 必须 Azure Stack Hub 从中同步的时间服务器的 IP 地址,它也是 OAW 从中同步的时间源。 检查 AzureStackStampInformation.json,或请求管理员提供 Stack Hub 要从中同步的时间服务器的 IP。 如果在紧急情况下无法获取集线器所同步的时间服务器的 IP,可以为此参数输入默认时间服务器“time.windows.com,0x8”。 请注意,强烈建议确保 OAW 和 Stack Hub 中的时间保持同步,以避免在 OAW 中与 Stack Hub 交互时出现潜在的时钟偏差问题。
ImageFilePath 自选 OAW.vhdx 的路径由 Microsoft 提供。 默认值是在此脚本的同一父文件夹下的 OAW.vhdx
虚拟机名称 自选 要分配给虚拟机的名称。 如果在 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,则不会生效。
跳过网络配置 自选 跳过虚拟机的网络配置,以便用户可以稍后进行配置。
DeploymentDataFilePath 自选 DeploymentData.json 的路径。 如果设置了 -SkipNetworkConfiguration,则不会生效。
物理适配器MAC地址 自选 将用于将虚拟机连接到的主机网络适配器的 MAC 地址。
- 如果只有一个物理网络适配器,则不需要此参数,并且将使用唯一的网络适配器。
- 如果有多个物理网络适配器,则需要此参数来指定要使用的网络适配器。
虚拟交换机名称 自选 需要在虚拟机 Hyper-V 中配置的虚拟交换机的名称。
- 如果存在具有所提供名称的 VMSwitch,则会选择此类 VMSwitch。
- 如果不存在具有所提供名称的 VMSwitch,则会使用提供的名称创建 VMSwitch。
Re-Create 自选 如果已有具有相同名称的虚拟机,则删除并重新创建虚拟机。

检查 OAW VM 版本

  1. 使用您的凭据登录到OAW虚拟机。

  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 管理任务