※ terraformプロジェクトが既に運用されているけど初めてterraformに触れるよっていう前提です
そもそもterraformとは
超ざっくり言うとソースコードでインフラ構築できちゃうツールです
最初勘違いしてたんですが、AWSのサービスではないです
tfenv導入
自分のPCにterraformをインストールする前にtfenvを導入します
terraformは割と頻繁にアップデートがあって、バージョンがちょっと違うだけでも動かなくなったりするのでrubyでいうrbenvのようなバージョン管理ツールを入れといた方が後々楽だと思います
$ brew install tfenv
既にterraformを導入済み等の場合は、正しく動くようにコマンドを実行してくれって出てくるので忘れずに実行しましょう
// 例1
Please `brew unlink terraform` before continuing.
// 例2
To force the link and overwrite all conflicting files:
brew link --overwrite tfenv
terraformをインストールするときは下記コマンドを実行します
$ tfenv install 0.12.29 // インストールしたいバージョン 又は latest
インストール終わったらuseコマンドでそのバージョンを使うようにします
$ tfenv use 0.12.29
最後に下記コマンドで正しく設定されたか確認します
$ terraform -v
> Terraform v0.12.29
他にtfenvでできることは下記の記事がわかりやすかったです
https://qiita.com/kamatama_41/items/ba59a070d8389aab7694
前回構築した時のバージョンを確認する
先に書いたようにバージョンが違うと動かなくなる可能性が高いので、(別の人が)前回構築した時のバージョンと同じにするのが良さそうですよね
前回構築した時の情報はAWSのS3に保存されています(この辺はプロジェクトに寄って違ったりするかも?です)
tfstateファイル(xxxx.tfstate)を探して中身を見てみると、上から2つ目に"terraform_version"
があると思います
これが前回構築した時のterraformのバージョンです
それからコードが変更されてなければこのterraformのバージョンを使えばうまくいく"はず"です
実行してみる
terraformで構築するまでの大まかな流れは初期化して、確認して、構築!です
- プロジェクトの中はおそらく環境毎にフォルダ分けされてると思うので、構築したい環境に移動します
-
$ terraform init
を実行して初期化します -
$ terraform plan
を実行して前回との差分を確認します - 問題なければ
$ terraform apply
を実行するとインフラ構築されます
(applyするとtfstateファイルが生成されるみたいです)
認証周り
init実行してクレデンシャルがどうのこうのとか、見つかんないよってエラーが出たらだいたい認証周りの不備の可能性大です
下記を特に見直してみるといいかもです(自分はアクセスキーが未発行の状態でinitしてました…orz)
- 秘密鍵と公開鍵が正しくセットされているか
- アクセスキーとシークレットアクセスキーが発行済みでちゃんと設定されているか
- 複数ある場合は切り替わっているか
超ざっくりな解説でしたが、これさえできれば最低限の運用はなんとかなりそうです!