2016-11-17 173 views
5

我試圖創建一個使用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}" 
    } 
} 
+0

您是否正確導出了'OS_REGION_NAME'名稱環境變量? – ydaetskcoR

回答

0

你必須仔細檢查所有的參數,錯別字和/或增量正確的值。 TF不會爲你做到這一點。

當您指定例如不存在的密鑰對或網絡名稱時(例如在您的示例中,您爲網絡指定了ID而不是名稱),就會發生這種情況。

0

你的配置:

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

要分配name但提供網絡id

8

直到最近這條消息還很難調試。在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密鑰。

+0

謝謝!這實際上保存了我的屁股。我試圖穿上它,如果沒有這面旗幟,我永遠都不會想到它! – llevar