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