已连接的独立 ESXi 主机上的 Terraform vsphere_resource_pool - 获取资源池时出错
Terraform vsphere_resource_pool on connected standalone ESXi host - error fetching resource pool
我几乎是 terraform 和 vsphere 提供者的菜鸟,我遇到了所有菜鸟问题。
我们希望在连接到 vsphere 的托管独立(非集群)ESXi 65 主机上部署 VM,但我无法获得正确的 resource_pool 资源声明,如图所示,我得到了有点绝望并尝试了我能想到的所有排列:
provider "vsphere" {
vsphere_server = "vcs1.fq.dn"
alias = "prod"
allow_unverified_ssl = true
}
data "vsphere_datacenter" "prod" {
provider = vsphere.prod
name = "PROD Datacenter"
}
data "vsphere_resource_pool" "vmhost23" {
provider = vsphere.prod
datacenter_id = data.vsphere_datacenter.prod.id
# name = "vmhost23/Resources"
# name = "vmhost23/resources"
# name = "vmhost23/"
# name = "/"
name = "/Resources"
# name = "/resources"
# name = "vmhost23/Resources/"
# name = "vmhost23/resources/"
# name = "vmhost23/"
# name = "/"
# name = "/Resources/"
# name = "/resources/"
# name = "vmhost23.fq.dn"
# name = "vmhost23.fq.dn/"
# name = "vmhost23.fq.dn/Resources/"
# name = "vmhost23.fq.dn/Resources"
# name = "vmhost23.fq.dn/resources/"
# name = "vmhost23.fq.dn/resources"
}
不幸的是,没有快乐:
data.vsphere_datacenter.prod: Refreshing state...
data.vsphere_datastore.vmhost23: Refreshing state...
data.vsphere_resource_pool.vmhost23: Refreshing state...
data.vsphere_network.DMZ-prod: Refreshing state...
data.vsphere_datacenter.dc: Refreshing state...
data.vsphere_datastore.datastore: Refreshing state...
data.vsphere_compute_cluster.cluster: Refreshing state...
data.vsphere_datastore_cluster.datastore_cluster: Refreshing state...
data.vsphere_network.TEST-APP: Refreshing state...
data.vsphere_virtual_machine.template: Refreshing state...
:
vsphere_virtual_machine.prdsat: Refreshing state... [id=42190b77-a6a7-8693-e05f-c11528d1afa4]
Error: error fetching resource pool: resource pool '/Resources' not found
on vm-prdsplidx01x.tf line 4, in data "vsphere_resource_pool" "vmhost23":
4: data "vsphere_resource_pool" "vmhost23" {
我找到了解决方案。
就我而言,主机位于文件夹中这一事实 - 是的,真的 - 让一切变得不同。这么小的一个数据点,我就忽略了。
所以,就我而言,有效的方法是
data "vsphere_resource_pool" "vmhost23" {
provider = vsphere.prod
name = "FolderName/vmhost23.fq.dn"
datacenter_id = data.vsphere_datacenter.prod.id
}
大小写很重要,似乎需要ESXi主机名上的FQDN;但如果您找到了一种方法使其可以使用短主机名或小写文件夹名称,请务必纠正我。
所以,又过了一个障碍,只剩下 31 个了!感谢你为我玩 Duck。
我在我的 vCenter7 上启用了 DRS/HA,这有助于获得 resource_pool。同样使用 govc 将获取资源池 ID 的路径。
关于政府
govc 查找 / -type p
terraform 导入 vsphere_resource_pool.resource_pool /dc1/host/compute-cluster1/Resources/
以上为您提供了 tfstate。
我几乎是 terraform 和 vsphere 提供者的菜鸟,我遇到了所有菜鸟问题。
我们希望在连接到 vsphere 的托管独立(非集群)ESXi 65 主机上部署 VM,但我无法获得正确的 resource_pool 资源声明,如图所示,我得到了有点绝望并尝试了我能想到的所有排列:
provider "vsphere" {
vsphere_server = "vcs1.fq.dn"
alias = "prod"
allow_unverified_ssl = true
}
data "vsphere_datacenter" "prod" {
provider = vsphere.prod
name = "PROD Datacenter"
}
data "vsphere_resource_pool" "vmhost23" {
provider = vsphere.prod
datacenter_id = data.vsphere_datacenter.prod.id
# name = "vmhost23/Resources"
# name = "vmhost23/resources"
# name = "vmhost23/"
# name = "/"
name = "/Resources"
# name = "/resources"
# name = "vmhost23/Resources/"
# name = "vmhost23/resources/"
# name = "vmhost23/"
# name = "/"
# name = "/Resources/"
# name = "/resources/"
# name = "vmhost23.fq.dn"
# name = "vmhost23.fq.dn/"
# name = "vmhost23.fq.dn/Resources/"
# name = "vmhost23.fq.dn/Resources"
# name = "vmhost23.fq.dn/resources/"
# name = "vmhost23.fq.dn/resources"
}
不幸的是,没有快乐:
data.vsphere_datacenter.prod: Refreshing state...
data.vsphere_datastore.vmhost23: Refreshing state...
data.vsphere_resource_pool.vmhost23: Refreshing state...
data.vsphere_network.DMZ-prod: Refreshing state...
data.vsphere_datacenter.dc: Refreshing state...
data.vsphere_datastore.datastore: Refreshing state...
data.vsphere_compute_cluster.cluster: Refreshing state...
data.vsphere_datastore_cluster.datastore_cluster: Refreshing state...
data.vsphere_network.TEST-APP: Refreshing state...
data.vsphere_virtual_machine.template: Refreshing state...
:
vsphere_virtual_machine.prdsat: Refreshing state... [id=42190b77-a6a7-8693-e05f-c11528d1afa4]
Error: error fetching resource pool: resource pool '/Resources' not found
on vm-prdsplidx01x.tf line 4, in data "vsphere_resource_pool" "vmhost23":
4: data "vsphere_resource_pool" "vmhost23" {
我找到了解决方案。
就我而言,主机位于文件夹中这一事实 - 是的,真的 - 让一切变得不同。这么小的一个数据点,我就忽略了。
所以,就我而言,有效的方法是
data "vsphere_resource_pool" "vmhost23" {
provider = vsphere.prod
name = "FolderName/vmhost23.fq.dn"
datacenter_id = data.vsphere_datacenter.prod.id
}
大小写很重要,似乎需要ESXi主机名上的FQDN;但如果您找到了一种方法使其可以使用短主机名或小写文件夹名称,请务必纠正我。
所以,又过了一个障碍,只剩下 31 个了!感谢你为我玩 Duck。
我在我的 vCenter7 上启用了 DRS/HA,这有助于获得 resource_pool。同样使用 govc 将获取资源池 ID 的路径。
关于政府 govc 查找 / -type p
terraform 导入 vsphere_resource_pool.resource_pool /dc1/host/compute-cluster1/Resources/ 以上为您提供了 tfstate。