使用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"
}

使用步骤

    1. 创建.env文件并输入值

 

    1. 进入docker文件夹并执行以下命令:

 

    1. > docker-compose up -d

 

    1. > docker-compose exec terraform /bin/ash

 

    可以使用terraform命令。

请允许我参考了这篇文章。

使用Docker来使用Terraform

bannerAds