Terraform Provider for VMware ESXi: 使用指南与API概述
安装指南
前提条件
- Terraform: 需要安装至少0.11.x版本的Terraform,推荐使用最新版。
- Go环境: 确保Go语言环境已设置,最低需要1.11+版本。
- OVFTool: 来自VMware的OVFTool,Windows用户需手动添加到系统路径。
- SSH访问: 必须在ESXi上启用SSH。
- 技能要求: 用户应熟悉Terraform、ESXi和基础网络配置。
Terraform Provider安装步骤
-
设置GOPATH (如果您还未设置):
mkdir $HOME/go export GOPATH="$HOME/go" -
获取依赖并构建插件:
go get -u -v golang.org/x/crypto/ssh go get -u -v github.com/hashicorp/terraform go get -u -v github.com/josenk/terraform-provider-esxi cd $GOPATH/src/github.com/josenk/terraform-provider-esxi CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -ldflags '-w -extldflags "-static"' -o terraform-provider-esxi_$(cat version) sudo cp terraform-provider-esxi_$(cat version) /usr/local/bin
或者直接通过Terraform 0.13+自动下载或从GitHub发布页获取预编译二进制文件。
项目使用说明
环境配置与初始化
-
首先,确保您的Terraform配置符合所需版本,并包含正确的提供商信息:
terraform { required_version = ">= 0.12" required_providers { esxi = { source = "registry.terraform.io/josenk/esxi" version = "latest" } } } -
对于0.11.x或0.12.x版本的手动安装,从发布页面下载对应二进制文件并放置在Terraform的执行目录或系统路径下。
示例配置 (main.tf)
编辑一个示例main.tf以定义ESXi提供商参数和资源:
provider "esxi" {
esxi_hostname = "your_esxi_host"
esxi_username = "username"
esxi_password = "password"
}
resource "esxi_guest" "example_vm" {
guest_name = "ExampleVM"
disk_store = "DatastoreName"
# 可选配置,如克隆或OVF来源
# clone_from_vm = "TemplateName"
# ovf_source = "/path/to/source.ovf"
network_interfaces {
virtual_network = "VM Network"
}
}
操作流程
- 初始化:
terraform init - 计划:
terraform plan - 应用:
terraform apply - 查看状态:
terraform show - 清理:
terraform destroy
API使用文档
提供商配置属性
- esxi_hostname: ESXi主机名或IP地址,必填。
- esxi_username: 登录用户名,默认为"root"。
- esxi_password: 密码,必填。
- (更多默认可选属性见官方文档)
资源类型
- esxi_guest: 创建、管理虚拟机,支持克隆、自定义规格等。
- 属性包括:guest_name, boot_disk_size, numvcpus, network_interfaces等。
- esxi_resource_pool: 控制资源池,可定义CPU和内存限制。
- esxi_virtual_disk: 创建虚拟磁盘。
每个资源类型的详细属性、操作方法和生命周期,请参照官方仓库中的文档和示例配置进行深入了解。
以上指南提供了快速入门和基本使用方法,实际部署时,请仔细阅读项目文档,特别是对于复杂配置和特定场景的处理。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



