使用 tfenv 切换 Terraform 版本

目录
我是寺冈,一名基础设施工程师。
这次,我将向大家展示如何使用tfenv切换Terraform版本。
1. tfenv 是什么?
tfenv是一个允许您通过命令行界面 (CLI) 切换 Terraform 版本的工具。
正如一些用户可能从其相似的名称中注意到的那样,它的
灵感来源于
rbenv 目前它处于 alpha 测试阶段,但 Terraform 0.12即将发布,其硬件兼容性列表 (HCL) 格式也将发生重大变化,因此
现在使用 tfenv 随时切换版本可能非常有用。
2. 安装 tfenv
从 GitHub 克隆并设置路径。
$ git clone https://github.com/tfutils/tfenv.git ~/.tfenv $ echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bash_profile $ source ~/.bash_profile
3.如何使用tfenv
命令列表
$ tfenv tfenv 0.6.0-16-g4475b71 用法:tfenv<command> [<options>命令:install 安装指定版本的 Terraform;use 切换要使用的版本;uninstall 卸载指定版本的 Terraform;list 列出所有已安装的版本;list-remote 列出所有可安装的版本
安装(0.11)
$ tfenv install 0.11.11 [INFO] 正在安装 Terraform v0.11.11 [INFO] 正在从 https://releases.hashicorp.com/terraform/0.11.11/terraform_0.11.11_linux_amd64.zip 下载发布包 ######################################################################## 100.0% [INFO] 正在从 https://releases.hashicorp.com/terraform/0.11.11/terraform_0.11.11_SHA256SUMS 下载 SHA 哈希文件 tfenv: tfenv-install: [WARN] 未找到 keybase 安装,跳过 GPG 签名验证 归档文件:tfenv_download.s1KQnc/terraform_0.11.11_linux_amd64.zip 正在解压: /root/.tfenv/versions/0.11.11/terraform [信息] Terraform v0.11.11 安装成功 [信息] 切换到 v0.11.11 [信息] 切换完成
已安装版本列表
$ tfenv list * 0.11.11 (由 /root/.tfenv/version 设置)
完成上述操作并运行 Terraform 后,
您就可以使用 tfenv 安装的版本了。
$ terraform --version Terraform v0.11.11
我想试试用 0.12 版本代替 0.11 版本。
我们来切换一下版本吧。
安装(0.12)
$ tfenv install 0.12.0-alpha4 [INFO] 正在安装 Terraform v0.12.0-alpha4 [INFO] 正在从 https://releases.hashicorp.com/terraform/0.12.0-alpha4/terraform_0.12.0-alpha4_terraform_0.12.0-alpha4_linux_amd64.zip 下载发布 tarball ##################################################################### 100.0% [INFO] 正在从 https://releases.hashicorp.com/terraform/0.12.0-alpha4/terraform_0.12.0-alpha4_SHA256SUMS 下载 SHA 哈希文件 tfenv: tfenv-install: [WARN] 未找到 keybase 安装,跳过 GPG 签名验证 Archive: tfenv_download.gut3iL/terraform_0.12.0-alpha4_terraform_0.12.0-alpha4_linux_amd64.zip 正在提取:/root/.tfenv/versions/0.12.0-alpha4/terraform 正在提取:/root/.tfenv/versions/0.12.0-alpha4/terraform-provider-aws_v1.40.0-6-gb23683732-dev_x4 正在提取:/root/.tfenv/versions/0.12.0-alpha4/terraform-provider-azurerm_v1.17.0-5-ga3b48ba3-dev_x4 正在提取:正在提取 /root/.tfenv/versions/0.12.0-alpha4/terraform-provider-google_v1.19.1-3-g59efc8b9-dev_x4: 正在提取 /root/.tfenv/versions/0.12.0-alpha4/terraform-provider-oci_v3.9.0-3-ga5859820-dev_x4: 正在提取 /root/.tfenv/versions/0.12.0-alpha4/terraform-provider-null_v1.0.0-5-gf54ff98-dev_x4: 正在提取 /root/.tfenv/versions/0.12.0-alpha4/terraform-provider-template_v1.0.0-5-g317c9c9-dev_x4:正在提取 /root/.tfenv/versions/0.12.0-alpha4/terraform-provider-random_v2.0.0-5-g612dff2-dev_x4:/root/.tfenv/versions/0.12.0-alpha4/terraform-provider-local_v1.1.0-5-ga2df742-dev_x4 [INFO] Terraform v0.12.0-alpha4 安装成功 [INFO] 切换到 v0.12.0-alpha4 [INFO] 切换完成
已安装版本列表
$ tfenv list * 0.12.0-alpha4 (由 /root/.tfenv/version 设置) 0.11.11
看起来 0.12 版本已经加载完毕,那么我们来尝试运行 Terraform。
$ terraform --version Terraform v0.12.0-alpha4 (2c36829d3265661d8edbd5014de8090ea7e2a076)
看起来版本已经切换了。
当然,您可以切换回 0.11 版本。
版本切换
$ tfenv use 0.11.11 [INFO] 切换到 v0.11.11 [INFO] 切换完成 $ terraform --version Terraform v0.11.11
rbenv 也有类似的功能,但
你只能在特定目录中更改版本。
在你想要更改的目录中放置一个名为“.terraform-version”的文件。
切换版本(指定目录)
$ tfenv list 0.12.0-alpha4 * 0.11.11 (由 /root/.tfenv/version 设置) $ pwd /opt/tfenv-version-test $ echo 0.12.0-alpha4 > .terraform-version $ terraform version Terraform v0.12.0-alpha4 (2c36829d3265661d8edbd5014de8090ea7e2a076)
查看 tfenv list 命令,显示版本为 0.11.11,但
.terraform-version 目录下加载的是 0.12.0。
如果返回上一级目录并检查版本,就会发现它仍然是 0.11.11。
$ cd ../ $ terraform version Terraform v0.11.11
4. 总结
使用 tfenv,您可以轻松地从 CLI 切换版本。
- 测试和实施新版本
- 使用特定版本的插件
我认为 tfenv 在这种情况下会非常有用。
我非常期待 Terraform 0.12 的正式发布。
希望你们也能试用一下 tfenv!
如果您觉得这篇文章有用,请点击【点赞】!
0