如何使用Terraform创建SoftLayer Vlan?

时间:2017-06-12 22:40:45

标签: ibm-cloud-infrastructure

我可以使用control.softlayer.com创建VLAN(我们已打开自动VLAN排序标记)。但是,当我尝试使用来自github slash ibm-bluemix.github.io/tf-ibm-docs/v0.3-tf-v0.9.3/r/infra_vlan.html的Terraform提供程序时,出现错误。我使用的是我帐户中的API密钥,因此权限应该相同。

这里是.tf文件内容:

Ctrl + V

这是错误:

resource "ibmcloud_infra_vlan" "dev_vlan_01" {
    name = "pancakes_dev_vlan_01"
    datacenter = "FRA02"
    type = "PRIVATE"
    subnet_size = 8
    router_hostname = "bcr01a.fra02"
}

我的〜/ .softlayer文件的内容是:

Error applying plan:

1 error(s) occurred:

* ibmcloud_infra_vlan.dev_vlan_01: 1 error(s) occurred:

* ibmcloud_infra_vlan.dev_vlan_01: Error creating vlan: SoftLayer_Exception_Public: Access Denied.  (HTTP 401)

提前致谢!

更新1:

看来插件的新版本不再关注〜/ .softlayer。从某种意义上讲,我得到了401s - 看起来这个插件正在执行而没有凭据。在查看此处的代码https://github.com/IBM-Bluemix/terraform/blob/v0.3-tf-v0.9.3/builtin/providers/ibmcloud/provider.go后,我尝试将SL_USERNAME和SL_API_KEY环境变量设置为无明显效果。我还尝试将带有凭据的[softlayer] username = <username as it appears in users list in control.softlayer.com> api_key = <api key as it appears both in my Profile page and in the users list> 部分添加到我的.tf文件中,似乎也没有效果。

更新2: 想通了我需要使用&#34; vpn&#34;用户名(不是“用户”页面中的用户名),现在环境变量正在运行。但是,provider "bluemix"会导致崩溃:

terraform apply

1 个答案:

答案 0 :(得分:0)

以下是我陷入的所有陷阱:

  • 帐户先决条件:仅当SoftLayer的某个人在您的帐户中启用了自动VLAN订购时,此功能才有效。
  • 凭据:您应使用的“用户名”是您的个人资料中的“API用户名”。 https://github.com/IBM-Bluemix/terraform/tree/v0.3-tf-v0.9.3的最新版本不尊重~/.softlayer,但我能够使用环境变量SL_USERNAMESL_API_KEY
  • 传递凭据
  • 大写:我正在将数据中心名称大写为FRA02,这导致了一个terraform崩溃。将其切换为fra02让一切都快乐。