【问题标题】:How to install multiple or two versions of Terraform?如何安装多个或两个版本的 Terraform?
【发布时间】:2020-05-23 14:37:35
【问题描述】:

我有很多使用 Terraform 的 gcp-provider 在 Terraform 0.11 中编写的 Terraform 模块,并希望将其升级到 Terraform 0.12。

为此,我需要保留系统上安装的两个版本,并根据编写模块的版本使用版本。

我将在每个模块中一一进行,并使用terraform 0.12upgrade 升级模块以与this documentation 兼容Terraform 0.12。

如何在一个系统中安全地保存两个版本的 Terraform?

【问题讨论】:

    标签: terraform terraform-provider-gcp


    【解决方案1】:

    我使用 Ubuntu 18.04,并按照以下步骤安全地实现了这一点。可以在任何 Linux 发行版上执行类似的步骤(确保您正在下载兼容的二进制文件。确认 here

    注意以 root 或 sudo 用户身份运行以下命令

    创建目录以保存 Terraform 二进制文件

    $ mkdir -p /usr/local/tf
    $ mkdir -p /usr/local/tf/11
    $ mkdir -p /usr/local/tf/12
    

    下载两个版本的二进制文件

    1. 下载并解压Terraform 0.11 的二进制文件到一个单独的目录中:
      $ cd /usr/local/tf/11
      $ wget https://releases.hashicorp.com/terraform/0.11.14/terraform_0.11.14_linux_amd64.zip
      $ unzip terraform_0.11.14_linux_amd64.zip
      $ rm terraform_0.11.14_linux_amd64.zip
      
    2. 下载并解压Terraform 0.12 的二进制文件到一个单独的目录中:
      $ cd /usr/local/tf/12
      $ wget https://releases.hashicorp.com/terraform/0.12.20/terraform_0.12.20_linux_amd64.zip
      $ unzip terraform_0.12.20_linux_amd64.zip
      $ rm terraform_0.12.20_linux_amd64.zip
      
    3. /usr/bin/ 目录中为两个 Terraform 版本创建符号链接:
      ln -s /usr/local/tf/11/terraform /usr/bin/terraform11
      ln -s /usr/local/tf/12/terraform /usr/bin/terraform12
      
      # Make both the symlinks executable
      chmod ugo+x /usr/bin/terraform*
      

    调用不同的版本

    • 现在,命令 terraform11 调用 0.11 版,terraform12 调用 0.12 版
    • 示例:
      $ terraform11
      $ terraform12
      

    注意

    • 将二进制文件保存在单独的目录中也有助于将它们的插件分开,而不会相互干扰。

    【讨论】:

      【解决方案2】:

      我强烈推荐tfenv 工具。它可以轻松轻松地用于管理多个 terraform 安装。如果您曾经使用过 nvm(用于 nodejs)或 rvm(用于 ruby​​),这很熟悉。

      您甚至可以将.terraform-version 文件添加到您的模块中,当您将cd 进入模块时,该工具会自动为您切换 terraform 版本。

      【讨论】:

      • 对于那些怀疑者来说,这真的有效!一个简单的brew install tfenv 可以让您执行tfenv install min-required && tfenv use 0.15.4 之类的操作。非常适合在项目之间轻松切换!
      【解决方案3】:

      让您的生活更轻松并安装tfswitch。它负责安装和在您需要的版本之间切换;它就像魔法一样工作。

      【讨论】:

        猜你喜欢
        • 2021-09-24
        • 2016-09-21
        • 1970-01-01
        • 1970-01-01
        • 2015-03-31
        • 2020-07-11
        • 2020-08-25
        • 2012-01-29
        • 1970-01-01
        相关资源
        最近更新 更多