You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform Hyper-V Provider构建虚拟机:配置与API疑问

Terraform Hyper-V Provider 配置:host/port参数与API准备

一、host与port参数说明

host 指向你的Hyper-V主机地址:

  • 本地Hyper-V环境:填 localhost 或 127.0.0.1
  • 远程Hyper-V主机:填目标主机的IP地址或主机名(比如 hyperv-server-01 或 192.168.3.20)

port 对应WinRM服务的端口(Hyper-V Provider通过WinRM调用Hyper-V API):

  • 默认HTTP端口:5985
  • HTTPS加密端口:5986(需额外配置证书)

基础配置示例

provider "hyperv" {
  user     = "WORKGROUP\\admin" # 域用户格式为"DOMAIN\\username",本地用户可直接用"admin"
  password = "your_secure_password"
  host     = "192.168.3.20"    # 远程主机IP,本地用"localhost"
  port     = 5985               # 默认WinRM HTTP端口
}

二、Hyper-V API(WinRM)准备步骤

Hyper-V Provider依赖WinRM来访问Hyper-V API,需要在目标主机上完成以下配置:

  1. 启用WinRM服务
    打开管理员权限的PowerShell执行:

    Enable-PSRemoting -Force
    
  2. 开放防火墙端口

    • 开放HTTP端口(默认):
      Set-NetFirewallRule -Name WINRM-HTTP-In-TCP -RemoteAddress Any
      
    • 若使用HTTPS加密连接,需先生成自签名证书并配置:
      # 生成自签名证书
      $cert = New-SelfSignedCertificate -DnsName "hyperv-server-01" -CertStoreLocation "Cert:\LocalMachine\My"
      # 创建HTTPS监听
      winrm create winrm/config/Listener?Address=*+Transport=HTTPS "@{Hostname=`"hyperv-server-01`"; CertificateThumbprint=`"$($cert.Thumbprint)`"}"
      # 开放HTTPS端口防火墙规则
      Set-NetFirewallRule -Name WINRM-HTTPS-In-TCP -RemoteAddress Any
      
  3. 配置用户权限
    确保用于连接的用户拥有Hyper-V管理员权限,或通过以下命令调整PowerShell会话权限:

    Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUI
    

    在弹出的权限窗口中,添加目标用户并授予"执行"权限。

三、常见问题提示

  • 若连接失败,先检查WinRM服务状态:Get-Service WinRM
  • 远程连接时,确认主机之间网络可达,无额外防火墙拦截
  • 用户名格式错误会导致认证失败,域用户必须包含域名前缀

内容的提问来源于stack exchange,提问作者Christian Prieto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:25:28