初めてTerraformを使ったのでメモを残しておきます。
前提
- mac
- homebrew インストール済み
- AWS CLIのインストール+設定が終わっている
AWS CLIは以下を実行してバージョンが表示されればOK
aws --version
開始
terraformをインストール
brew install terraform
terraform --version
tfenvをインストール
tfenvはterraformのバージョンを管理するためのツールです。
brew install tfenv
ここで発生したエラー
何やらエラーを吐かれました
Error: Cannot install tfenv because conflicting formulae are installed.
terraform: because tfenv symlinks terraform binaries
Please brew unlink terraform before continuing.
原因
tfenv
はTerraformのバージョン管理ツールであり、インストールするとシンボリックリンクを使ってterraform
コマンドを提供します。
しかし、既にterraform
がHomebrewでインストールされているため、シンボリックリンクが競合しているようです。
解決方法
brew unlink terraform
再度以下を実行
brew install tfenv
僕の場合はこれで解決しました!
terraformのファイルを作成
好きなフォルダ内にtest.tfを作成し以下を記入
#Amazon Linux2のAMIベースにt2.microのEC2を作成
resource "aws_instance" "test" {
ami = "ami-04ef3193cda2ac9d4" #Amazon Linux 2023 AMI
instance_type = "t2.micro"
}
コマンドラインでtest.tfを作成したフォルダまで移動し以下を実行
terraform init
発生したエラー
またまたエラーを吐かれました
cat: /opt/homebrew/Cellar/tfenv/3.0.0/version: No such file or directory
Version could not be resolved (set by /opt/homebrew/Cellar/tfenv/3.0.0/version or tfenv use )
原因
terraformのバージョンを指定しないといけなかったっぽい
解決策
以下を実行して最新バージョンを指定します
tfenv use 1.9.7
再度以下を実行
terraform init
僕の場合はこれで解決しました
EC2インスタンスを立ち上げる
そして以下を実行
terraform plan
terraform apply
EC2インスタンスができていれば成功!
EC2インスタンス名を追加
ec2インスタンス名を追加するためにtagsを追加
#Amazon Linux2のAMIベースにt2.microのEC2を作成
resource "aws_instance" "test" {
ami = "ami-04ef3193cda2ac9d4" #Amazon Linux 2023 AMI
instance_type = "t2.micro"
tags = {
Name: "test created by terraform"
}
}
再度以下を実行
terraform apply
マネジメントコンソールでEC2インスタンスを確認して名前が追加されて入れば成功です!
コメント