1 简介
Terraform
是一个可快速部署、方便管理IT基础架构配置的工具,它的理念是 Infrastructure as Code
,一切资源都是代码。如虚拟机、网络、DNS等,这些都通过代码来管理部署,而不是人工手动的去创建、删除等。它能大大减少人为操作的风险,能快速部署多套环境,适应多种硬件资源,特别适合云环境:AWS、GCP、Azure、阿里云等。
它通过丰富的 Providers
来管理多种类型的资源,就像是插件一样,如GCP、Docker、Kubernetes等。
本文将通过演示讲解如何部署Docker/Kubernetes资源。
2 安装
到官方 下载界面 对应的二进制文件,我通过命令操作,我选择的是Mac的版本:
# 创建目录
$ mkdir terraform
$ cd terraform/
# 下载安装包
$ wget https://releases.hashicorp.com/terraform/0.15.4/terraform_0.15.4_darwin_amd64.zip
# 解压
$ unzip terraform_0.15.4_darwin_amd64.zip
# 查看版本,显示安装成功
$ ./terraform --version
Terraform v0.15.4
on darwin_amd64
成功显示了版本,我们把它添加到环境变量中去即可。
3 部署Docker资源
创建个目录:
$ mkdir terraform-docker-demo && cd $_
创建一个 main.tf
文件,写入以下内容:
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
}
}
}
provider "docker" {}
resource "docker_image" "nginx" {
name = "nginx:latest"
keep_locally = false
}
resource "docker_container" "nginx" {
image = docker_image.nginx.latest
name = "tutorial"
ports {
internal = 80
external = 8000
}
}
根据 main.tf
初始化项目:
$ terraform init
Initializing the backend..