Course Code: terraformone
Duration: 14 hours
Course Outline:

第 1 课: IaC (Infrastructure as Code)介绍

回顾

为什么将基础架构作为代码?

术语

探索 IaC 方法

了解软件开发生命周期和 IaC

第 2 课: Terraform 介绍

2.1 什么是 Terraform

2.2 安装 Terraform

2.3 Terraform 基本命令介绍

2.4 示例:Hello Terraform

第 3 课: 学习 HCL (Hashicorp Configuration Language)

3.1 HCL 的结构

3.2 学习 Terraform providers

3.3 了解 Terraform data sources 和 resources

3.4 学习 Terraform outputs

3.5 了解 HCL interpolation

3.6 了解 Terraform dependencies

3.7 学习 variables 和 locals

3.8 学习 conditionals 和 Count property

3.9 了解 data types 和 operators

3.10 了解 Functions

3.11 了解 HCL 2.0 中的 iteration

3.12 了解 directives 和 heredocs

3.13 cleanup

第 4 课: 使用 Terraform 模块进行代码重用和封装

4.1 了解 Terraform modules

4.2 创建 module

4.3 使用 modules

第 5 课: Terraform 协作

5.1 了解 Terraform backends

5.2 探索 Terraform workspaces

5.3 在多团队环境中使用 Terraform

第 6 课: 使用 Terraform 进行连续部署(Continuous Deployment)

6.1 探索 Terraform Cloud

第 7 课: 扩展 Terraform

7.1 使用 Python 来创建 custom resources 和 Null provider

7.2 使用 Python 来创建 custom data sources 和 external provider

第 8 课: 使用 Terraform 管理 Kubernetes 和 Helm

8.1 探索 Kubernets provider

8.2 AWS, Kubernets 和 Helm

第 9 课: Terraform 的VMware Providers

9.1 VMware Cloud, VMware NSX-T, vCloud Director, vSphere, vRa7

第 10 课: Terraform Associate 认证

10.1 注册

10.2 准备

10.3 示例

Lab 练习:

使用 security group, internet gateways 和 route 创建具有 VPC 对等互连的多区域网络

使用 Terraform 和 Ansible 部署 Application Load balancer 以及 Jenkins 主节点和辅助节点

使用 Terraform 创建 route53 记录(别名),使用 Terraform 将数据传输到 Application Load balancer

使用 Terraform 部署整体解决方案

项目实例介绍:

使用terraform, puppet,consul搭建的PaaS