将terraform升级到特定版本

ken*_*tor 10 homebrew terraform

用例

我已经通过自制软件安装了Terraform v0.11.13,并且按照terraform的建议,我想在进行重大升级到v0.12.0之前先将其升级到v0.11.14版本。

问题

当我brew upgrade terraform从terraform网站运行或下载Mac软件包时,它将立即将我的terraform版本更新为v0.12.0。

那么,如何才能升级到v0.11.14?

小智 28

对于任何希望不使用自制软件也能做到这一点的人:

  1. 获取源码
$ wget https://releases.hashicorp.com/terraform/0.11.14/terraform_0.11.14_linux_amd64.zip

$ unzip terraform_0.11.14_linux_amd64.zip
Run Code Online (Sandbox Code Playgroud)
  1. 授予二进制可执行权限并安装(将覆盖当前版本)
$ chmod +x terraform

$ sudo mv terraform /usr/local/bin/
Run Code Online (Sandbox Code Playgroud)
  1. 确认版本
$ terraform --version
Run Code Online (Sandbox Code Playgroud)

来源:https : //titosoft.github.io/kvm/terraform-and-kvm/#installing-terraform


Ste*_*ing 24

尤其是在玩Terraform 0.12 beta时,我学会了爱上tfenv

通过安装后brew install tfenv,可以轻松发现,安装和激活任何Terraform版本:

$ tfenv list-remote
0.12.0
0.12.0-rc1
0.12.0-beta2
0.12.0-beta1
0.12.0
0.11.14
...

$ tfenv install 0.11.14
[INFO] Installing Terraform v0.11.14
[INFO] Downloading release tarball from https://releases.hashicorp.com/terraform/0.11.14/terraform_0.11.14_darwin_amd64.zip
...
[INFO] Installation of terraform v0.11.14 successful
[INFO] Switching to v0.11.14
[INFO] Switching completed
Run Code Online (Sandbox Code Playgroud)

如果要切换到其他版本:

$ tfenv use 0.12.0
[INFO] Switching to v0.12.0
[INFO] Switching completed
Run Code Online (Sandbox Code Playgroud)

  • 斯蒂芬,你是国王! (10认同)
  • 添加“.terraform-version”文件会使“tfenv”自动切换到给定目录的正确版本,如果尚未安装,它甚至会自动安装正确的版本。 (7认同)
  • 如果已经安装了最新版本。在从 tfenv 安装特定版本之前,您可能需要先取消链接“brew unlink terraform”。安装后,输入“tfenv use 0.12.30”以使用新版本。 (3认同)

Sty*_*zma 16

有一个很好的tfenv替代品,我已经使用了几年 - tfswitch

  1. 简单的安装过程:
# MacOS
brew install warrensbox/tap/tfswitch

# Linux
curl -L https://raw.githubusercontent.com/warrensbox/terraform-switcher/release/install.sh | bash
Run Code Online (Sandbox Code Playgroud)
  1. 提供 alpha、beta 和候选版本 terraform 版本。
  2. 支持更改版本的多个选项,例如:
  • 手动与tfswitch VERSION_NUMBER.
  • 自动检测并切换到version.tf文件中描述的版本。
  • 自动切换到自定义路径下的自定义二进制文件(对于权限有限的用户或服务很有帮助)。
  • .tfswitchrc使用, -自动切换,.terrafom-version需要最少的设置并支持 bash、zsh 和 Fish。
  1. 可以轻松地与JenkinsCircleCI集成- 我还没有测试过,这些功能分别是 10 和 5 个月前添加的。

总而言之,这是一个很棒且简单的帮手,推荐这个。


小智 7

除了传统的解决方案之外,解决所需问题的一个简单方法是安装tfswitch。它只需一个命令即可更改 terraform 版本。给定链接中提供了安装和使用指南。

注意: 脚本初始化后(terraform init),您无法降级到以前的版本。


Kum*_*kaj 5

简单且最好的方法:-

# MacOS
 brew install warrensbox/tap/tfswitch

# Linux
curl -L https://raw.githubusercontent.com/warrensbox/terraform- 
switcher/release/install.sh | bash
Run Code Online (Sandbox Code Playgroud)

然后使用任一命令来更改版本-

1. tfswitch ==> you will see option to select version.


2. tfswitch 0.14.3 ==> this way
Run Code Online (Sandbox Code Playgroud)