Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 如何将terraform文件转换为在vSphere而不是GCP中提供/创建虚拟机?_Google Cloud Platform_Terraform_Vmware_Vsphere - Fatal编程技术网

Google cloud platform 如何将terraform文件转换为在vSphere而不是GCP中提供/创建虚拟机?

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,这将完全取决

通过下面的URL,我能够在vSphere上创建/销毁一个示例VM

不同文件的内容:
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}"
}