学习Terraform入门时一边创建一边记忆(1)-安装和初始设置

开始学习云计算不久后,我了解到可以将基础架构编码化。这就是所谓的基础架构即代码(IaC)方法。

如果使用IaC工具,有很多选择。
如果使用AWS,可选择CloudFormation;如果使用Azure,可选择ARMTemplate;
而支持多云环境的IaC工具是HashiCorp公司的Terraform。

因为我之前有一些简单的接触,现在重新学习Terraform并且积累了一些经验,所以我想以教程的形式总结一下。我决定以使用AWSCLI创建的环境作为主题,在Terraform中重新创建这个环境,以便学习。

边制作边学习Terraform入门系列
    1. 安装和初始设置 => 这次是这个

 

    1. 基本部分

 

    1. VPC部分

 

    1. EC2部分

 

    1. Route53 + ACM部分

 

    1. ELB部分

 

    RDS部分

系统配置

cloud02-aws-terraform.png

以下是包括ELB、EC2、RDS等常见三层架构的配置。
源代码如下。

 

环境

    • macOS BigSur 11.3.1

 

    Homebrew 3.1.9

在中文中原生地的释义是”安装Terraform”。

你可以很容易地通过Homebrew进行安装。

brew install terraform

已经安装了最新版本0.15.5,该版本位于/usr/local/bin/中,所以无需设置环境变量路径。

terraform --version
Terraform v0.15.5

顺便提一下,您也可以使用tfenv进行安装。
使用tfenv可以方便地切换多个版本,也便于在团队开发中固定版本。不过,由于通过tfenv执行terraform命令较慢,所以目前我暂时不使用^^;

# tfenvのインストール
brew install tfenv

# tfenvを使ってterraformをインストール
tfenv install 0.15.4
tfenv install 0.15.5

# デフォルトバージョンを指定
tfenv use 0.15.4

# 一覧を表示(0.15.4を使う設定になっている)
tfenv list
  0.15.5
* 0.15.4 (set by /usr/local/Cellar/tfenv/2.2.2/version)

# バージョン確認
terraform --version    
Terraform v0.15.4

# バージョン切り替え
tfenv use 0.15.5

# バージョンが切り替わった
tfenv list
* 0.15.5 (set by /usr/local/Cellar/tfenv/2.2.2/version)
  0.15.4

# バージョン確認
terraform --version    
Terraform v0.15.5

如果你使用tfenv,你可以在当前目录下创建一个名为.terraform-version的文件,并在其中写下需要使用的版本,这样就可以强制使用指定的版本。使用tfenv install命令(无参数)也可以直接安装指定的版本。

0.15.5

Visual Studio Code的擴充功能

我已经安装了以下两个软件。

    • HashiCorp Terraform

 

    Terraform Autocomplete

在「HashiCorp Terraform」中,可以进行语法检查、语法高亮显示和候选项显示。如果想要跳转到参考资料,可以尝试使用「Terraform Autocomplete」,它似乎非常方便,所以我正在试验性地使用它。

此外,在链接页面中也已经指出,HashiCorp Terraform具有自动格式化功能,因此,添加”editor.formatOnSave”: true并启用它会很方便。它可以在保存时自动整理缩进。

格式化
为了启用格式化,请将以下内容添加到Terraform扩展的扩展设置中。

    "[terraform]": {
        "editor.formatOnSave": true
    }

设置别名

开始使用Terraform后,您将频繁输入以下命令:

    • terraform plan

 

    • terraform apply

 

    terraform destroy

由于每次都输入 “terraform” 很麻烦,所以在 .zshrc 中注册别名会很方便。

alias tf="terraform"
alias tfp="terraform plan"
alias tfv="terraform validate"
alias tff="terraform fmt -recursive"
alias tfa="terraform apply -auto-approve"
alias tfd="terraform destroy -auto-approve"

apply和destroy是用于创建、更新和删除的命令。
由于添加了-auto-approve选项,您不需要输入yes/no进行确认,但在实际工作中使用此选项非常危险,因此根据需要进行删减。在熟练之前,最好不要使用别名手动输入,并在确认计划结果后进行yes/no的确认。

安装git-secrets

使用Terraform访问AWS之前,您需要先注册身份验证信息。有几种定义身份验证信息的方法,但为了避免将这些敏感信息错误地包含在Git源码管理中,建议先安装git-secrets软件。

# インストール
brew install git-secrets

# git-secretsの設定
git secrets --register-aws --global
git secrets --install ~/.git-templates/git-secrets
git config --global init.templatedir '~/.git-templates/git-secrets'

安装AWSCLI

为了注册访问AWS的认证信息,需要安装AWSCLI。您可以从官方页面的”MacOS”链接中下载PKG并进行安装。

F72BE34B-1E07-49B8-9BBC-3754CADF6376.png

如果成功安装了AWSCLI,我们要注册IAM用户的访问密钥。
根据该用户的访问权限,会使用Terraform来创建、更新、删除资源等操作,通常会创建一个具有AdministratorAccess权限的用户并分配给他。

aws configure set aws_access_key_id <アクセスキーID>
aws configure set aws_secret_access_key <シークレットアクセスキー>

请确认 ~/.aws/credentials 文件中已经注册了认证信息。

[default]
aws_access_key_id = <アクセスキーID>
aws_secret_access_key = <シークレットアクセスキー>

我将尝试进行操作确认。
请执行下面的命令,如果能显示出所使用的IAM用户的信息,那就可以了。

aws sts get-caller-identity
{
    "UserId": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
    "Account": "123456789012",
    "Arn": "arn:aws:iam::123456789012:user/terraform"
}

我准备好了使用Terraform。
下次,我想通过创建和删除VPC命令来介绍Terraform的基本用法!

请参考以下链接。

AWS コマンドラインインターフェイス

【初心者向け】MacにTerraform環境を導入してみた

广告
将在 10 秒后关闭
bannerAds