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 文件的哈希:
从 GitHub 下载 Test-FileHash.psm1 文件,然后运行:
Import-Module .\Test-FileHash.psm1 -Force -Verbose
导入 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,则可以跳过此步骤。
使用您的凭据登录到 HLH。
打开 PowerShell ISE 并运行以下脚本:
C:\Version\Get-Version.ps1
例如:
使用脚本创建 OAW VM
以下脚本将虚拟机配置为操作员访问工作站(OAW),该工作站用于访问 Microsoft Azure Stack Hub。
使用凭证登录 HLH。
下载 OAW.zip 并提取文件。
打开提升的 PowerShell 会话。
导航到 OAW.zip 文件的已提取内容。
运行 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 版本
使用您的凭据登录到OAW虚拟机。
打开 PowerShell ISE 并运行以下脚本:
C:\Version\Get-Version.ps1
例如:
在 HLH 和 OAW 之间传输文件
如果需要在 HLH 和 OAW 之间传输文件,请使用 New-SmbShare cmdlet 创建 SMB 共享。 New-SmbShare 将文件系统文件夹作为服务器消息块(SMB)共享公开给远程客户端。 例如:
若要删除此 cmdlet 创建的共享,请使用 Remove-SmbShare cmdlet。
删除 OAW VM
以下脚本删除用于访问 Azure Stack Hub 进行管理和诊断的 OAW VM。 此脚本还会删除与 VM 关联的磁盘文件和守护者。
使用账户凭据登录 HLH。
打开提升的 PowerShell 会话。
导航到已安装 OAW.zip 文件的已提取内容。
通过运行 Remove-OAW.ps1 脚本删除 VM:
.\Remove-OAW.ps1 -VirtualMachineName \<name\>
其中 <name> 是要删除的虚拟机的名称。 默认情况下,该名称为 AzSOAW。
例如:
.\Remove-OAW.ps1 -VirtualMachineName AzSOAW