在虚拟化技术领域,VMware ESXi 作为企业级 hypervisor 被广泛部署,虽然 ESXi 本身是一个独立的操作系统,但Linux 系统可通过标准化接口和工具实现对 ESXi 主机的集中管理、自动化运维和监控,以下是 Linux 管理 ESXi 的核心方法与实践:
官方命令行工具:govc
VMware 官方提供的 Go-based VMware CLI (govc) 是 Linux 管理 ESXi 的首选工具,它通过 vSphere API 实现全功能控制。
操作示例:
-
安装 govc (以 Ubuntu 为例):
curl -L -o - "https://github.com/vmware/govmomi/releases/latest/download/govc_$(uname -s)_$(uname -m).tar.gz" | sudo tar -C /usr/local/bin -xvzf - govc
-
环境变量配置:
export GOVC_URL="https://esxi_host_ip" # ESXi 或 vCenter 地址 export GOVC_USERNAME="root" # ESXi 管理员账户 export GOVC_PASSWORD="your_password" export GOVC_INSECURE=true # 若使用自签名证书
-
常用管理命令:
# 查看 ESXi 主机信息 govc about # 创建虚拟机 govc vm.create -net="VM Network" -disk=20GB -m=4096 -c=2 -g=ubuntu64Guest NewVM # 虚拟机电源操作 govc vm.power -on -wait NewVM # 开机 govc vm.power -off NewVM # 关机 # 上传 ISO 镜像到存储 govc datastore.upload ISOs/ubuntu.iso esxi-datastore/ISOs/
Python 自动化:pyVmomi
VMware 官方维护的 Python SDK(pyVmomi)允许开发高级管理脚本,适合批量运维场景。
基础脚本示例(获取所有虚拟机列表):
from pyVim.connect import SmartConnectNoSSL import ssl context = ssl.SSLContext(ssl.PROTOCOL_TLS) context.verify_mode = ssl.CERT_NONE # 连接 ESXi si = SmartConnectNoSSL( host="esxi_host_ip", user="root", pwd="password", port=443, sslContext=context ) # 获取所有虚拟机 content = si.RetrieveContent() for child in content.rootFolder.childEntity: if hasattr(child, 'vmFolder'): vm_folder = child.vmFolder vm_list = vm_folder.childEntity for vm in vm_list: print(f"VM Name: {vm.name}")
第三方管理平台整合
Linux 可运行以下开源工具实现图形化/API 管理:
-
Terraform + vSphere Provider
通过 IaC(基础设施即代码)部署 ESXi 资源:resource "vsphere_virtual_machine" "web_server" { name = "terraform-web" resource_pool = "esxi_resource_pool" datastore_id = data.vsphere_datastore.ssd.id num_cpus = 2 memory = 2048 guest_id = "ubuntu64Guest" network_interface { network_id = data.vsphere_network.vm_network.id } disk { label = "disk0" size = 20 } }
-
Prometheus + vSphere Exporter
监控 ESXi 性能指标:- 部署 vSphere Exporter 到 Linux
- 配置 Prometheus 抓取指标
- 通过 Grafana 可视化 CPU/内存/存储使用率
SSH 直接管理(谨慎使用)
通过 Linux SSH 客户端连接 ESXi 的 Tech Support Mode(需手动启用):
ssh root@esxi_host_ip esxcli system version get # 查看版本 esxcli hardware cpu list # 查看 CPU 信息 esxcli storage vmfs snapshot list # 列出 VMFS 快照
注意:VMware 官方建议优先使用 vSphere API 而非直接 SSH,避免配置漂移风险。
安全与权限最佳实践
- 最小权限原则
在 ESXi 创建专属角色(如Linux-Operator
),仅分配必要权限(虚拟机操作、只读监控等)。 - API 证书验证
为 ESXi 配置有效 TLS 证书,避免GOVC_INSECURE=true
在生产环境使用。 - 凭证管理
使用ssh-agent
或 Vault 管理密钥,避免脚本中硬编码密码。
管理方式 | 适用场景 | 核心优势 |
---|---|---|
govc |
日常运维/快速操作 | 官方支持,命令直观 |
pyVmomi |
定制化自动化 | Python 生态集成灵活 |
Terraform | 基础设施即代码 (IaC) | 版本控制,环境一致性 |
Prometheus | 性能监控与告警 | 云原生监控栈整合 |
引用说明
- VMware govc 官方文档: https://github.com/vmware/govmomi/tree/master/govc
- pyVmomi SDK 示例: https://github.com/vmware/pyvmomi-community-samples
- vSphere Terraform Provider: https://registry.terraform.io/providers/hashicorp/vsphere/latest/docs
- VMware 安全加固指南: https://core.vmware.com/security-configuration-guide
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8953.html