使用Git进行管理的Docker+Terraform(支持代理)
背景来源
-
- インフラもコードで管理してGit管理に乗せたい(IaC)
-
- 簡単にTerraformを使いたい
- ローカル環境に影響を与えたくない
总结
-
- Terraformを利用できる仮想環境をDockerで作成する
- キー情報などはGit管理に含めない
所需工具
- Docker
全部的文件
infrastructure
├ docker-compose.yml
├ .gitignore
├ .env.sample
├ .env
└ terraform
├ main.tf
└ variables.tf
docker-compose.yml 翻譯為中文後的句子:
「Docker Compose 功能清單」
version: "3"
services:
terraform:
container_name: terraform
image: hashicorp/terraform
env_file:
- .env
volumes:
- ./terraform:/terraform
working_dir: /terraform
entrypoint: ash
tty: true
.gitignore 文件
- .env にはAWSのキーなどが含まれるのでGit管理から除外する
# env
.env
# Terraform
.terraform
*.tfstate
*.tfstate.backup
.env.示例
- .env 記入用サンプル
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
HTTP_PROXY=
HTTPS_PROXY=
环境变量
-
- .env.sample をコピーして値を記入する
- Git 管理は含まれない
主要.tf
provider "aws" {
region = var.region
}
resource "aws_vpc" "vpc" {
cidr_block = var.vpc_cidr
tags = {
Name = var.vpc_name
}
}
variables.tf 的中文释义是“变量.tf”。
# Define variable in this file.
variable "region" {
default = "ap-northeast-1"
}
variable "vpc_cidr" {
default = "172.16.0.0/16"
}
variable "vpc_name" {
default = "vpc-name"
}
使用步骤
-
- 创建.env文件并输入值
-
- 进入docker文件夹并执行以下命令:
-
- > docker-compose up -d
-
- > docker-compose exec terraform /bin/ash
- 可以使用terraform命令。
请允许我参考了这篇文章。
使用Docker来使用Terraform