无法从Terraform启动Openstack实例

时间:2016-11-17 09:59:22

标签: openstack terraform

我正在尝试使用Terraform创建一个OpenStack实例,但我收到以下错误:

Error applying plan:

1 error(s) occurred:

* openstack_compute_instance_v2.basic: Error creating OpenStack server: Invalid
request due to incorrect syntax or missing required parameters.

Terraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with

但是相同的Terraform代码在我的OpenStack帐户中成功创建了安全组,密钥对和卷

这是我的Terraform代码:

provider "openstack" {
  user_name = "admin"
  tenant_name = "admin"
  password  = "admin"
  auth_url  = "http://my_IP():5000/v2.0"
}
resource "openstack_blockstorage_volume_v1" "myvol" {
  name = "myvol"
  size = 1
}
resource "openstack_compute_instance_v2" "basic" {
  name = "basic"
  image_id = "8ce1c922-ad0-81a3-823ea1b0af9b"
  flavor_id = "2"
  key_pair = "tf-keypair-1"
  security_groups = ["default"]

  metadata {
    this = "that"
  }

  network {
    name = "8b510300-610a--9cc3-6e76e33395b4"
  }
  volume {
    volume_id = "${openstack_blockstorage_volume_v1.myvol.id}"
  }
}

3 个答案:

答案 0 :(得分:9)

这条消息直到最近才很难调试。在version 0.8.8 of Terraform(更具体地说是Enable HTTP Logging improvement for the OpenStack Terraform provider)中,团队添加了OS_DEBUG环境变量,以帮助在这些情况下提供更多信息。使用它的一种方法如下:

TF_LOG=DEBUG OS_DEBUG=1 terraform apply ...

我收到此消息后因为忘记在OpenStack中为我正在使用的用户添加ssh密钥。

答案 1 :(得分:0)

您必须仔细检查所有参数是否存在拼写错误和/或错误值。 TF不会为你做那件事。

当您指定例如不存在的密钥对或网络名称时(例如,您的示例,您为网络指定了ID而不是名称),就会发生这种情况。

答案 2 :(得分:0)

从你的配置:

network { name = "8b510300-610a--9cc3-6e76e33395b4" }

您正在分配name,但提供网络id