第 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