如果 vCenter Server 反向代理使用自定义端口,则无法下载 VIB。

问题

如果将 vCenter Server 反向代理配置为使用自定义端口,则 VIB 下载将失败。

原因

如果 vCenter Server 反向代理使用自定义端口,则不会在 ESXi 防火墙中自动启用自定义端口,并且 VIB 下载将失败。

解决方案

  1. 打开与主机的 SSH 连接并以 root 用户身份登录。
  2. (可选) 列出现有防火墙规则。
    esxcli network firewall ruleset list
  3. (可选) 备份 /etc/vmware/firewall/service.xml 文件。
    cp /etc/vmware/firewall/service.xml /etc/vmware/firewall/service.xml.bak
  4. 编辑 service.xml 文件的访问权限,以通过运行 chmod 命令允许写入。
    • 要允许写入,请运行 chmod644/etc/vmware/firewall/service.xml
    • 要切换粘滞位标志,请运行 chmod+t /etc/vmware/firewall/service.xml
  5. 在文本编辑器中打开 service.xml 文件。
  6. service.xml 文件添加一条新规则,以启用 vCenter Server 反向代理的自定义端口。
    <service id='id_value'>
       <id>vcenterrhttpproxy</id>
       <rule id='0000'>
         <direction>outbound</direction>
         <protocol>tcp</protocol>
         <port type='dst'>custom_reverse_proxy_port</port>
       </rule>
       <enabled>true</enabled>
       <required>false</required>
    </service>
    
    其中 id_value 必须是唯一值,例如,如果 service.xml 文件中最后列出的服务包含 ID 0040,则必须输入 ID 编号 0041。
  7. service.xml 文件的访问权限恢复为默认的只读设置。
    chmod 444 /etc/vmware/firewall/service.xml
  8. 刷新防火墙规则,以使更改生效。
    esxcli network firewall refresh
  9. (可选) 列出更新的规则集,以确认更改。
     esxcli network firewall ruleset list
  10. (可选) 如果希望防火墙配置在重新引导 ESXi 主机后永久有效,请将 service.xml 复制到永久存储上,并修改 local.sh 文件。
    1. 将修改后的 service.xml 文件复制到永久存储上(例如 /store/),或复制到 VMFS 卷上(例如 /vmfs/volumes/volume/)。
      cp /etc/vmware/firewall/service.xml location_of_xml_file
      可以将 VMFS 卷存储在单个位置,并将其复制到多个主机。
    2. service.xml 文件信息添加到主机上的 local.sh 文件中。
      cp location_of_xml_file /etc/vmware/firewall
      esxcli network firewall refresh
      
      其中 location_of_xml_file 是文件复制到的位置。