用例
我已经通过自制软件安装了Terraform v0.11.13,并且按照terraform的建议,我希望在升级到v0.12.0之前先升级到v0.11.14版本。
问题
当我运行brew upgrade terraform
或从terraform网站下载Mac软件包时,它将立即将我的terraform版本更新为v0.12.0。
那我该如何升级到v0.11.14?
答案 0 :(得分:2)
尤其是在使用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
如果要切换到其他版本:
$ tfenv use 0.12.0
[INFO] Switching to v0.12.0
[INFO] Switching completed
答案 1 :(得分:1)
有一个很好的 tfenv 替代品,我已经使用了好几年了 - tfswitch。
# MacOS
brew install warrensbox/tap/tfswitch
# Linux
curl -L https://raw.githubusercontent.com/warrensbox/terraform-switcher/release/install.sh | bash
tfswitch VERSION_NUMBER
的手册。version.tf
文件中描述的版本。.tfswitchrc
、.terrafom-version
自动切换 - 需要最少的设置并支持 bash、zsh 和 fish。总而言之,它是一个伟大而简单的帮手,会推荐这个。
答案 2 :(得分:0)
对于那些希望不使用自制软件就这样做的人:
$ wget https://releases.hashicorp.com/terraform/0.11.14/terraform_0.11.14_linux_amd64.zip
$ unzip terraform_0.11.14_linux_amd64.zip
$ chmod +x terraform
$ sudo mv terraform /usr/local/bin/
$ terraform --version
来源:https://titosoft.github.io/kvm/terraform-and-kvm/#installing-terraform
答案 3 :(得分:0)
除常规解决方案外,要解决所需问题的简便方法是安装 tfswitch 。它仅需一个命令即可更改terraform版本。 link中提供了安装和使用指南。
注意:
初始化脚本(terraform init
之后,您不能降级到以前的版本。
答案 4 :(得分:0)
我从0.6开始就使用TF,并且在我的工作站上积极使用许多不同的版本。我使用direnv [https://direnv.net/]来进行此操作,因为它已有相当长的一段时间了,并且可以很好地用于在目录中管理TF二进制版本,此外它还允许我将每个目录的env vars传递到TF中而没有麻烦。
示例.envrc:
export AWS_PROFILE=prod
export PATH=/usr/local/terraform/terraform-0.12.20:$PATH
export TF_VAR_dd_api_key=REDACTED
export TF_VAR_dd_app_key=REDACTED
当我进入包含该.envrc的目录时,不仅将正确的TF二进制文件放入PATH中,还设置了我的AWS配置文件,在这种情况下还设置了一些DataDog API密钥。
当我想升级TF时,请确保将所需的二进制文件放入正确的位置并编辑.envrc,使其位于PATH中。理想情况下,.envrc不会推送到Github,因为其他人可能会有不同的设置,尤其是API密钥不应该进入存储库。
我知道它有点陈旧,但是对我来说很好用。
答案 5 :(得分:0)
简单且最好的方法:-
# MacOS
brew install warrensbox/tap/tfswitch
# Linux
curl -L https://raw.githubusercontent.com/warrensbox/terraform-
switcher/release/install.sh | bash
然后使用任一命令更改版本-
1. tfswitch ==> you will see option to select version.
2. tfswitch v0.14.3 ==> this way