[Terraform] 01 - Concepts and preparing dev environment
CICD的东西,过了红利期,不值钱,一周培训便能拥有的技能,韭醒!
Goto: 代码有点意思
Goto: 官网欣赏
使用 Terraform 在 AWS 中国区域实现自动化部署指南系列(一) TERRAFORM 入门
使用 Terraform 在 AWS 中国区域实现自动化部署指南系列(二) TERRAFORM 进阶
使用 Terraform、Cloud Build 和 GitOps 以代码形式管理基础架构
安装 Terraform
Ref: https://www.terraform.io/downloads.html
Move to /usr/bin directly.
基本概念
一、核心特点
-
Cross-platform
Lists of Terraform Providers
Goto: https://www.terraform.io/docs/providers/index.html
-
Automation
-
Environmental consistency
-
Audit and version control
-
Automation test
二、与CloudFormation、Serverless做对比
The definitive guide to using Terraform with the Serverless Framework [有代码]
结论:
Terraform is best suited for managing more persistent shared infrastructure,
while Serverless is a good fit to manage the application-specific infrastructure.
三、核心概念
Configuration Language
Commands
Providers
State
Backends: state的管理,放在远端保管,比如 都放在 aws s3 上保存。
Provisioners:
Modules: 别人已经写好的代码。
工具集
一、Configuration Management
Terraform 用于 “构建基础”,也就是 “先搭建环境” for other services。基础架构层初始化。
二、四个阶段
HashiCorp 开发的工具,该公司牛。
若干介绍:
Packer: 搞一个镜像,选择什么系统,例如Ubuntu,然后安装一些预装软件。
Vagrant: 比如团队使用统一的开发环境,可以通过其做一个“开发镜像”,并分发给各个队员。
实践发现下面的最佳组合,是一门学问。
三、搭建开发环境 [可选]
Ref: docker 和vagrant比较 [自动化配置virtualbox]
一个样例:https://github.com/AndrewProgramming/terraform_devops_env
-
Vagrant
一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。(应该有状态)
-
SFTP插件 [可选]
允许远程同步代码。
Ctrl+Shift+P
on Windows/Linux --> SFTP: Config
在项目下的.vscode下增加了一个配置文件:sftp.json
End.