无法从Terraform
我试图创建一个使用Terraform一个OpenStack的实例,但我发现了以下错误启动OpenStack的实例:无法从Terraform
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}"
}
}
你必须仔细检查所有的参数,错别字和/或增量正确的值。 TF不会为你做到这一点。
当您指定例如不存在的密钥对或网络名称时(例如在您的示例中,您为网络指定了ID而不是名称),就会发生这种情况。
你的配置:
network { name = "8b510300-610a--9cc3-6e76e33395b4" }
要分配name
但提供网络id
。
直到最近这条消息还很难调试。在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密钥。
谢谢!这实际上保存了我的屁股。我试图穿上它,如果没有这面旗帜,我永远都不会想到它! – llevar
您是否正确导出了'OS_REGION_NAME'名称环境变量? – ydaetskcoR