🐣
DockerでTerraformを使う
概要
仕事でTerraformを使い始めたので、備忘録として残しておく。
Docker環境の準備
公式のDockerImageが存在するため、それを利用する。
下記の4つのファイルがあれば実行できます。
※ moduleの使い方等はここでは触れません
docker-compose.yml
version: '3'
services:
terraform:
container_name: terraform
image: hashicorp/terraform:0.14.7
env_file:
- .env
volumes:
- .:/terraform
working_dir: /terraform
entrypoint: ash
tty: true
.gitignore
# IDE
.idea
# env
.env
# Terraform
.terraform
*.tfstate
*.tfstate.backup
.env.example
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
TF_VAR_HOGE=
公式のDockerImageはAWS_KEYの環境変数をセットすれば実行できるようになっています。
main.tf
# Sample
provider "aws" {
region = "ap-northeast-1"
}
variable "vpc_cidr" {
default = "10.0.0.0/16"
}
resource "aws_vpc" "main" {
cidr_block = var.vpc_cidr
tags = {
Name = var.app_name
}
}
使い方
- .envを作成してAWSのKEYを入力
$ cp .env.example .env $ vim .env
- docker-compose upで起動してコンテナ内で実行
$ docker-compose up -d $ docker-compose exec terraform /bin/ash
- initしてplan...etc
# terraform init # terraform plan
注意事項
.envをgit管理するとAWS_KEYが漏れてマイニングとかされるので必ず.gitignoreに入れる事!
Discussion