使用Terraform的方法学习(第一步:使用tfenv安装Terraform)
首先
因为下一份工作要使用Terraform,所以我打算把它整理起来进行学习。
- 【次】Terraformを使って覚える。(その2:git-secretsとVS Codeのインストール)
我的技能感
以前, 我曾学习过CloudFormation并写了一些相关文章,但对于Terraform只是稍微接触过一下,现在已经完全忘记了,所以我打算重新学习一下。
- CloudFormationをゼロから勉強する。(その1:前準備)
Terraform是什么
HashiCorp提供的工具是一种称为IaC(基础设施即代码)的工具,用于通过代码管理基础设施环境。
CloudFormation虽然也是一种类似的工具,但CloudFormation仅针对AWS环境的构建,而Terraform是一个可以在AWS、GCP和Azure等多个平台使用的工具。
此外,与CloudFormation类似,由于需要构建各种云基础设施服务,因此在进行服务器配置等操作时,需要使用Ansible等工具。
提供给你参考的教材
由于仅靠自学很困难,所以我想参考以下内容,系统地学习一下。
「实践Terraform」是我之前买来并开始使用但中途搁置的内容。而「通过AWS和Terraform实现基础设施即代码」是因为正好在Udemy打折销售,所以我买了下来。
-
- 実践Terraform AWSにおけるシステム設計とベストプラクティス
- AWSとTerraformで実現するInfrastructure as Code
准备安装Terraform
这次我想考虑以下环境并进行安装尝试。
在安装Terraform之前,我们需要先准备好相关的功能和周边设置。
-
- 安装 Terraform 创建 IAM 用户
-
- 安装 AWS CLI
-
- 为 Terraform 创建用户配置文件到 AWS CLI
- 安装 Git
上述的1至3是为了在Terraform中操作AWS环境而需要创建和操作专用用户所必需的AWS CLI安装与设置。第4步是为了使用Terraform的源代码管理以及使用后面提到的tfenv时想要使用包含在Git软件包中的Git Bash,因此需要进行Git的安装。
创建 IAM 用户 使用 Terraform
为了用于Terraform的执行,请在AWS的IAM中创建以下Terraform用户。
在实际运营环境中,需要严格设置权限,但由于本次目的是学习Terraform,我们将直接分配AdministratorAccess管理策略。
在创建IAM用户之后,我们需要从所创建用户的“认证信息”选项卡中获取访问密钥,并将其保存为CSV文件或其他格式。
安装AWS CLI
只需从AWS提供的以下在线手册中下载并运行面向Windows的安装程序。
- AWS CLI の最新バージョンをインストールまたは更新します。
如果在安装完成后,在PowerShell或命令提示符等中显示如下内容,则表示正常。
aws --version
aws-cli/2.7.10 Python/3.9.11 Windows/10 exe/AMD64 prompt/off
创建用于Terraform的AWS CLI用户配置文件。
使用刚刚获取的访问密钥,使用AWS CLI创建一个用于Terraform的用户配置文件。
通过PowerShell执行aws configure命令,按照以下方式进行注册。
aws configure
AWS Access Key ID [None]: XXXXXXXXXXXXXXXXXXXX
AWS Secret Access Key [None]: YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
Default region name [None]: ap-northeast-1
Default output format [None]: json
如果已经存在其他用户配置文件,请按照以下指南创建另一个配置文件。
- AWS CLIで複数アカウントを使い分ける。
安装Git
您只需要从以下下载页面下载Windows版本的Git,然后运行安装程序即可。
在安装过程中,会询问一些问题,但即使选择默认设置也没有问题。
- Git Downloads
安装Terraform
我打算使用一个名为tfenv的工具来安装Terraform。
tfenv是一个工具,可以安装并切换多个版本的Terraform进行使用。
Terraform经常进行版本升级,有时由于版本更改了语法而无法正常运行。在这种情况下,可以使用tfenv切换版本进行操作。
由于本次的目的是学习如何使用Terraform,所以不需要安装tfenv,但实际运用中经常会用到,所以我计划借此机会尝试使用tfenv。
-
- 安装tfenv
-
- 设置tfenv使用的环境变量
- 使用tfenv安装Terraform
请注意,以下提供了关于没有使用 tfenv 进行 Terraform 安装的补充说明。如果您不使用 tfenv,请参考以下补充内容。
-
- 【補充】非使用tfenv進行Terraform的安裝
- 【補充】從命令行設定Terraform使用的環境變數的永久設定
安装tfenv
tfenv的安装和初始设置是从之前安装的Git Bash克隆以下tfenv的GitHub,然后设置环境变量以配置tfenv路径的流程。
使用Git Bash从GitHub上下载并执行以下内容。
另外,在以下情况下会在「C:\Users\[用户名]」创建一个名为「.tfenv」的文件夹,并将克隆的文件存放其中。如果您想将其存放在其他位置,请更改路径。
git clone https://github.com/tfutils/tfenv.git .tfenv
使用环境变量设置tfenv
为了将tfenv命令添加到路径中,我们需要在主目录(C:\Users\[用户名])创建一个名为“.bashrc”的文件,并进行PATH环境变量的设置。
听说路径无法设置为Windows格式,所以要进行以下转换。
-
- 【変換前】:C:\Users\UserName.tfenv\bin
- 【変換後】:/c/Users/UserName/.tfenv/bin
此外,以下部分我们使用了Here Document来进行设置,但是如果直接执行的话,$PATH会被解析为变量。因此,我们需要用单引号或双引号将_EOF_包裹起来。
cat << "_EOF_" >> .bashrc
export PATH=$PATH:/c/Users/UserName/.tfenv/bin
_EOF_
一旦成功创建了.bashrc文件,可以使用source命令来加载该文件。
source .bashrc
使用tfenv来安装Terraform。
使用tfenv命令来下载和安装Terraform。
要使用tfenv来确认可安装的Terraform版本,请执行以下命令。
tfenv list-remote
然后,将显示可以安装的Terraform版本,请记下要安装的版本。
1.3.0-alpha20220622
1.3.0-alpha20220608
1.2.3
1.2.2
(省略)
我打算在写这篇文章时,安装最新的稳定版本”1.2.3″。
tfenv install 1.2.3
使用tfenv命令可以安装指定版本的Terraform,但是在使用tfenv的情况下,需要指定要使用哪个版本,因为它会从已安装在终端的版本中选择。可以使用tfenv use命令指定。
tfenv use 1.2.3
为了确认当前使用的版本,请执行tfenv list命令。
在命令结果中,以“*”开头的版本是当前使用的版本。
tfenv list
* 1.2.3 (set by /c/Users/UserName/.tfenv/version)
如果安装的版本已指定为“*”,则安装完成。
【附注】不使用tfenv的Terraform安装方法
如果不使用tfenv,我也会提供关于Terraform安装方法的补充说明。
只需要从HashiCorp的下载页面下载文件并将其存放在任意位置,然后运行即可完成Windows版的安装。
- Download Terraform
然而,仅仅将它放置在一个随意的位置并不能让路径通畅,所以还需要进行环境变量的设置。
从命令中设置Terraform环境变量的持久化配置。
尽管可以通过GUI画面进行设置,但我打算使用PowerShell进行设置。
由于此处已经介绍了通过命令设置环境变量的方法,所以只列出了如何将永久设置添加到用户变量的路径。
- コマンド操作でWindowsの環境変数を設定する。
我們可以使用以下命令來確認設定之前的設定。
[System.Environment]::GetEnvironmentVariable('PATH' , 'User')
为了向环境变量PATH添加路径,必须在现有设置之后进行追加,因此有点麻烦。但我们可以创建一个临时变量,将结果合并在一起来完成。
$path = [System.Environment]::GetEnvironmentVariable('PATH' , 'User')
$path += ';' + 'C:\Users\UserName\Documents\terraform_1.2.3_windows_amd64'
[System.Environment]::SetEnvironmentVariable('PATH' , $path , 'User')
关闭 PowerShell 后,再次打开,并且能够成功执行以下命令且无需指定路径。
terraform.exe --version
Terraform v1.2.3
on windows_amd64
最后
本次安装了tfenv和Terraform在Windows上,并进行了初始设置。
我打算在下次开发时进行所需工具的安装和设置。