Google cloud platform 如何将terraform文件转换为在vSphere而不是GCP中提供/创建虚拟机?
通过下面的URL,我能够在vSphere上创建/销毁一个示例VM 不同文件的内容:Google cloud platform 如何将terraform文件转换为在vSphere而不是GCP中提供/创建虚拟机?,google-cloud-platform,terraform,vmware,vsphere,Google Cloud Platform,Terraform,Vmware,Vsphere,通过下面的URL,我能够在vSphere上创建/销毁一个示例VM 不同文件的内容: provider.tf variables.tf test.tf 使用的命令 terraforminit terraform验证 地形图 terraform应用 地形破坏 我的下一个需要是将现有的terraform文件配置GCP VM转换为VMware vSphere云环境中的文件。如果有人有什么建议,请分享。这个问题没有一个简单的答案。您将需要手动重写您的地形以使用VSphere而不是GCP,这将完全取决
provider.tf
variables.tf
test.tf
使用的命令
terraforminit
terraform验证
地形图
terraform应用
地形破坏
我的下一个需要是将现有的terraform文件配置GCP VM转换为VMware vSphere云环境中的文件。如果有人有什么建议,请分享。这个问题没有一个简单的答案。您将需要手动重写您的地形以使用VSphere而不是GCP,这将完全取决于您目前在GCP中所做的工作。谢谢@ydaetskcoR。您知道是否有对应于GCP和vSphere的资源列表吗。例如:
google\u compute\u address
-->vsphere\u virtual\u machine
这些不是一回事吗?不,每个云提供商都会有不同的结构,这也是为什么多云技术如此困难和工具支持,只能以最慢的云提供商的速度运行的原因之一。我不希望将它们(GCP和vSphere)结合在一起。目前,需要通过vSphere以GCP one为参考创建单独的资源调配。当然,在稍后的阶段,需要将两个提供商合并。
provider "vsphere" {
user = "${var.vsphere_user}"
password = "${var.vsphere_password}"
vsphere_server = "${var.vsphere_server}"
# If you have a self-signed cert
allow_unverified_ssl = true
}
data "vsphere_datacenter" "dc" {
name = "XYZ400"
}
data "vsphere_datastore" "datastore" {
name = "datastore1"
datacenter_id = "${data.vsphere_datacenter.dc.id}"
}
data "vsphere_resource_pool" "pool" {
name = "Pool1"
datacenter_id = "${data.vsphere_datacenter.dc.id}"
}
data "vsphere_network" "network" {
name = "Network1"
datacenter_id = "${data.vsphere_datacenter.dc.id}"
}
resource "vsphere_virtual_machine" "vmtest" {
name = "terraform-test"
resource_pool_id = "${data.vsphere_resource_pool.pool.id}"
datastore_id = "${data.vsphere_datastore.datastore.id}"
num_cpus = 2
memory = 1024
guest_id = "other3xLinux64Guest"
wait_for_guest_net_timeout = 0
network_interface {
network_id = "${data.vsphere_network.network.id}"
}
disk {
label = "disk0"
size = 20
}
}
variable "vsphere_user" {
description = "vSphere user name"
default = "username"
}
variable "vsphere_password" {
description = "vSphere password"
default = "password"
}
variable "vsphere_server" {
description = "vCenter server FQDN or IP"
default = "vCenterURL"
}
data "vsphere_virtual_machine" "template" {
name = "CENTOS7_Template"
datacenter_id = "${data.vsphere_datacenter.dc.id}"
}