在我关于 Kubernetes 初学者 Terraform 指南 的文章中,我使用了 Terraform 11,在即将发表的文章中,我将介绍从 Terraform 11 升级到 12 的内容。为了做好准备,在本文中,我将向你展示如何使用 tfenv,这个工具可以让你更容易地从一个版本转换为另一个版本,并管理你工作环境中的多个 Terraform 版本。
安装 tfenv
许多编码语言都有工具,允许你根据环境规则在版本之间来回切换。一个例子(tfenv 就是基于此)是 rbenv,它允许你选择要使用的 Ruby 版本。
tfenv 可以在 Linux、macOS 和 Windows 上运行;我将介绍使用 Ubuntu 18.04 的 Linux 安装,但该工具的 GitHub 仓库有针对其他操作系统的 安装说明。
Linux 安装使用了一些 Git 命令(如果你还不熟悉 Git,请查看 Git 入门 系列)。
首先,在你的 ${HOME}
目录中创建一个 .tfenv
文件夹
jess@Athena:~$ mkdir .tfenv
克隆 tfenv
仓库
jess@Athena:~$ git clone https://github.com/tfutils/tfenv.git ~/.tfenv
Cloning into '/home/jess/.tfenv'...
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (21/21), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 1105 (delta 8), reused 10 (delta 2), pack-reused 1084
Receiving objects: 100% (1105/1105), 216.01 KiB | 2.84 MiB/s, done.
Resolving deltas: 100% (703/703), done.
如果你更喜欢 Homebrew,你可以使用
$ brew install tfenv
将你的路径导出到你的 Bash 配置文件中
jess@Athena:~$ echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bash_profile
如果你只想使用基于 Ubuntu/Debian 系统的基本命令,还有另一种更简单的方法。在 .tfenv
目录中完成克隆后,设置你的配置文件,以便在下次会话中将 tfenv
命令放入你的配置文件中
jess@Athena:~/.tfenv$ . ~/.profile
配置文件设置完成后,你可以将你的目录符号链接到你的 .local/bin
目录,使 tfenv
成为可执行的二进制文件
jess@Athena:~/.tfenv$ ln -s ~/.tfenv/bin/* ~/.local/bin
运行 which
命令,你应该看到 tfenv
的位置
jess@Athena:~/.tfenv$ which tfenv
/home/jess/.local/bin/tfenv
如何使用 tfenv
现在一切都安装好了,看看有哪些命令可用
jess@Athena:~$ tfenv
tfenv 2.0.0-37-g0494129
Usage: tfenv <command> [<options>]
Commands:
install Install a specific version of Terraform
use Switch a version to use
uninstall Uninstall a specific version of Terraform
list List all installed versions
list-remote List all installable versions
正如你所看到的,这是一个非常简单的工具,可以让你根据需要安装和卸载 Terraform 版本。
在决定安装什么之前,检查一下有哪些版本可用。这是一个小片段,因为列表大约有一英里长
jess@Athena:~$ tfenv list-remote
0.14.0-beta1
0.14.0-alpha20201007
0.14.0-alpha20200923
0.14.0-alpha20200910
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.13.0-rc1
0.13.0-beta3
0.13.0-beta2
0.13.0-beta1
0.12.29
0.12.28
0.12.27
安装 Terraform 版本
要安装最新版本的 Terraform
jess@Athena:~$ tfenv install latest
Installing Terraform v0.13.5
Downloading release tarball from https://releases.hashicorp.com/terraform/0.13.5/terraform_0.13.5_linux_amd64.zip
###################################################################################################################################################################################### 100.0%
Downloading SHA hash file from https://releases.hashicorp.com/terraform/0.13.5/terraform_0.13.5_SHA256SUMS
No keybase install found, skipping OpenPGP signature verification
Archive: tfenv_download.N3bzZ2/terraform_0.13.5_linux_amd64.zip
inflating: /home/jess/.tfenv/versions/0.13.5/terraform
Installation of terraform v0.13.5 successful. To make this your default version, run 'tfenv use 0.13.5'
要安装特定的 Terraform 版本(在本例中为 0.12.29)
jess@Athena:~$ tfenv install 0.12.29
Installing Terraform v0.12.29
Downloading release tarball from https://releases.hashicorp.com/terraform/0.12.29/terraform_0.12.29_linux_amd64.zip
###################################################################################################################################################################################### 100.0%
Downloading SHA hash file from https://releases.hashicorp.com/terraform/0.12.29/terraform_0.12.29_SHA256SUMS
No keybase install found, skipping OpenPGP signature verification
Archive: tfenv_download.1YFOLh/terraform_0.12.29_linux_amd64.zip
inflating: /home/jess/.tfenv/versions/0.12.29/terraform
Installation of terraform v0.12.29 successful. To make this your default version, run 'tfenv use 0.12.29'
最后,要安装最新版本的 Terraform 0.11
jess@Athena:~$ tfenv install latest:^0.11
Installing Terraform v0.11.15-oci
Downloading release tarball from https://releases.hashicorp.com/terraform/0.11.15-oci/terraform_0.11.15-oci_linux_amd64.zip
###################################################################################################################################################################################### 100.0%
Downloading SHA hash file from https://releases.hashicorp.com/terraform/0.11.15-oci/terraform_0.11.15-oci_SHA256SUMS
No keybase install found, skipping OpenPGP signature verification
Archive: tfenv_download.8OxQ8k/terraform_0.11.15-oci_linux_amd64.zip
inflating: /home/jess/.tfenv/versions/0.11.15-oci/terraform
Installation of terraform v0.11.15-oci successful. To make this your default version, run 'tfenv use 0.11.15-oci'
就是这么简单,现在你可以开始使用它们了!
更改 Terraform 版本
一旦你安装了多个 Terraform 版本,你可以选择一个来使用。首先,通过列出已安装的版本来了解你的选项
jess@Athena:~$ tfenv list
0.13.5 (set by /home/jess/.tfenv/version)
0.12.29
0.11.15-oci
默认情况下,tfenv 选择你已安装的最新版本的 Terraform。通过运行 tfenv use
命令来查找默认版本
jess@Athena:~$ tfenv use
Switching default version to v0.13.5
Switching completed
jess@Athena:~$ terraform --version
Terraform v0.13.5
但是,如果你需要使用旧版本怎么办?此示例切换到我安装的最旧版本
jess@Athena:~$ tfenv use 0.11.15-oci
Switching default version to v0.11.15-oci
Switching completed
jess@Athena:~$ terraform -version
Terraform v0.11.15-oci
Your version of Terraform is out of date! The latest version
is 0.13.5. You can update by downloading from www.terraform.io/downloads.html
就像馅饼一样简单!只需运行 list
命令并使用提供的命名约定。
卸载 Terraform 版本
如果你有不再需要或不需要的 Terraform 版本,你可以使用 uninstall
命令将其删除。例如,我不需要 Terraform 版本 0.13
jess@Athena:~$ tfenv uninstall 0.13.5
Uninstall Terraform v0.13.5
Terraform v0.13.5 is successfully uninstalled
确认它不再安装
jess@Athena:~$ tfenv list
0.12.29
0.11.15-oci
最终想法
tfenv 工具在很多方面都很棒。如果你需要从一个 Terraform 版本更新到另一个版本,这是升级和测试结果的更快方法之一。如果你的环境中有一些东西在多个 Terraform 版本上运行,则可以根据需要轻松地来回切换。如果你使用 Terraform,请尝试 tfenv,看看它如何改变你的环境。
评论已关闭。