【问题标题】:Configure terraform to connect to IBM Cloud配置 terraform 以连接到 IBM Cloud
【发布时间】:2019-07-01 07:44:53
【问题描述】:

我尝试将 terraform 连接到 IBM Cloud,但我搞砸了 Softlayer 和 IBM Cloud 凭证。

我按照 IBM 站点上的说明将我的 terraform 连接到 IBM Cloud,但我很困惑,因为我可能会使用 SL 和 IBM Cloud 连接 API 密钥等信息。

我可能不会运行 terraform init 和/或计划,因为有一些 信息缺失。不,我被要求提供组织 (var.org)。 有时我被问到关于 SL 凭证的问题。我们的账户开始了 在 2019 年 1 月,我肯定不会和 SL 一起工作,而且只是 从 IBM Cloud 听说过 API 密钥。

希望有人举个例子,terraform.tfvars 是如何工作的 与 IBM Cloud Kubernetes Service、VPC 和 classic 正确搭配 基础设施?

非常感谢。

一月

【问题讨论】:

    标签: ibm-cloud ibm-cloud-infrastructure ibm-cloud-tools terraform-provider-ibm


    【解决方案1】:

    我建议开始看看这两个教程,处理LAMP stack on classic vertical serversKubernetes and other services。两者都提供分步说明,并指导您完成设置基于 Terraform 的部署的过程。

    他们在GitHub repos 中提供了必要的代码。对于Kubernetes sample credentials.tfvars you only need the API key

    ibmcloud_api_key = "your api key"
    

    【讨论】:

    • 您好,感谢您的回复。 .-) 我错过了这个教程,我会玩它。最好的,简
    【解决方案2】:

    对于 public_key,应提供包含公钥的字符串,而不是包含密钥的文件。

    $ cat ~/.ssh/id_rsa.pub
    ssh-rsa CCCde...
    

    然后在 terraform 中:

    resource "ibm_compute_ssh_key" "test_ssh_key" {
        public_key = "ssh-rsa CCCde..."
    }
    

    您也可以使用之前创建的密钥:

    data "ibm_compute_ssh_key" "ssh_key" {
        label =  "yourexistingkey"
    }
    
    resource "ibm_compute_vm_instance" "onprem_vsi" {
      ssh_key_ids       = ["${data.ibm_compute_ssh_key.ssh_key.id}"]
    }
    

    【讨论】:

      【解决方案3】:

      以下是使用 terraform 为 IBM Cloud Kubernetes Service 集群运行初始化或规划所需的内容...

      在您的 .tf 文件中

      terraform {
        required_providers {
          ibm = {
            source = "IBM-Cloud/ibm"
          }
        }
      }
      
      provider "ibm" {
        ibmcloud_api_key   = var.ibmcloud_api_key
        iaas_classic_username = var.classic_username
        iaas_classic_api_key  = var.classic_api_key
      }
      

      在您的 shell 中,设置以下环境变量

      export IBMCLOUD_API_KEY=<value of your IBM Cloud api key>
      export CLASSIC_API_KEY=<Value of you r IBM Cloud classic (i.e. SL) api key>
      export CLASSIC_USERNAME=<Value of your IBM Cloud classic username>
      

      按如下方式运行您的初始化程序:

      terraform init
      

      按如下方式运行您的计划:

      terraform plan \
         -var ibmcloud_api_key="${IBMCLOUD_API_KEY}" \
         -var classic_api_key="${CLASSIC_API_KEY}" \
         -var classic_username="${CLASSIC_USERNAME}" 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-25
        • 1970-01-01
        • 2020-06-03
        • 2020-05-14
        • 2018-12-03
        • 1970-01-01
        • 2017-06-24
        • 2021-01-03
        相关资源
        最近更新 更多