Course Code:
terraformonli
Duration:
21 hours
Course Outline:
培訓目標:
1.了解並掌握 Terraform 在 Azure 環境中的實際應用
2.能夠創建模塊化、自動化的 Azure 資源部署流程
3.掌握基于 Jenkins 的 CI/CD 和 GitOps 工作流下的 Terraform 應用
4.實際項目實踐,使學員具備立即上手的能力
總培訓時長:
3 天,共計21小時(其中每日含1小時休息)
1.第一天:Terraform 基礎與 Azure 資源管理
2.第二天:Azure 資源的模塊化管理與最佳實踐
3.第三天:實際項目部署與 CI/CD 集成
前置培訓條件:
Terraform on Azure 培訓前置條件
爲了確保學員能夠充分理解培訓內容並順利完成實際項目,以下是推薦的學習前置條件:
技術基礎:
1. 基本的雲計算知識
o 理解雲計算的基本概念,熟悉 Azure 平台及其核心服務(如虛擬機、存儲、網絡等)。
o 有一定的 Azure Portal 操作經驗,能夠創建基本資源。
2. 基礎的編程/腳本能力
o 熟悉基礎的編程概念,了解 JSON、YAML 等配置文件格式。
o 能夠使用 Shell 腳本(Linux/Bash)或 PowerShell,掌握命令行操作。
3. 基礎的網絡和操作系統知識
o 理解計算機網絡的基本概念,如 VPC、子網、DNS、NAT 等。
o 了解虛擬機、操作系統(Windows/Linux)的基本管理和使用。
o 本次培訓計劃基于 Windows 開展
工具與平台:
1. Terraform
o 對 Terraform 有基礎了解,熟悉其工作原理(如初始化、規劃、應用、銷毀等)。
o 能夠編寫簡單的 Terraform 配置文件,創建基礎資源。
2. Azure CLI
o 了解 Azure CLI 的基本操作,能夠通過命令行管理 Azure 資源。
o 熟悉 Azure 身份驗證(如 Service Principal)和權限設置。
3. Azure Services:
o 熟悉 Azure 平台及其核心服務。:
1. Azure Portal: Azure 用戶界面,推薦使用英文版本。
2. Azure Virtual Machines (VM):了解 VM 的創建、管理和定價模型。
3. Azure Virtual Machine Scale Sets (VMSS):學習如何使用 VMSS 進行自動擴展和縮減虛擬機以應對負載變化。
4. Azure Virtual Network (VNet):理解 VNet 的概念,及其子網(Subnet)、網絡安全組(NSG)的配置。
5. Azure Storage:學習 Azure Blob、Azure Table 和 Message Queue 等存儲類型的使用場景。
6. Azure Key Vault:學習如何存儲、加密並安全管理密碼、密鑰和證書。
7. Azure Load Balancer & Azure Application Gateway:了解如何在 Azure上實現流量管理與負載均衡。
4. PowerShell(使用 PowerShell 5 或 7)
o 了解 PowerShell 的基本操作,能夠通過命令行腳本管理 Azure 資源。
o 熟悉常見的 Azure PowerShell 命令,用于自動化部署和配置管理。
5. 版本控制(Git)
o 了解 Git 的基本操作,如克隆、提交、推送代碼等。
o 能夠使用 Git 管理 Terraform 配置文件,理解分支管理與代碼合並的基礎知識。
6. Docker
o 了解 Docker 的基本概念和工作原理,能夠創建和管理容器。
o 熟悉如何通過 Docker 將應用或環境打包成鏡像,並運行在不同環境中。
o 使用 Docker-Compose 快速部署實驗環境
7. Jenkins
o 基本了解 Jenkins 的功能,知道如何創建簡單的 Pipeline。
o 能夠配置 Jenkins 來自動化基礎設施部署或應用發布。
8. VS Code
o 熟悉 Visual Studio Code (VS Code) 編輯器的使用,特別是對于代碼編寫、格式化和擴展管理(例如Terraform 和 Azure 相關插件)。
o 能夠通過 VS Code 與 Git、Terraform 等工具進行集成,提升開發體驗。
推薦的准備工作:
1. Azure 賬號
o 注冊 Azure 賬號,並確保有足夠的權限創建資源(Service Principal 或管理員權限)。
2. 軟件安裝
o 提前安裝好 Terraform、Azure CLI、VS Code,Docker Desktop 等相關工具。
o 熟悉基本的環境配置與使用。
培訓內容:
第一天:Terraform 基礎與 Azure 資源管理 上午 (3.5 小時):
1. Introduction to Infrastructure as Code (IaC)
o 爲什麽選擇 IaC?
o Terraform 概述及在 Azure 中的應用
2. Azure 環境准備
o Azure 賬號與權限設置
o Azure CLI 的安裝與配置
3. Terraform 環境准備
o Terraform 的安裝與環境准備
o 認證與角色設置:使用 Service Principal 連接 Azure
o Terraform vs ARM Template 對比
o Terraform 工作流程(init、plan、apply、destroy)
下午 (3.5 小時):
4. Terraform 基礎語法與 Azure 資源管理
o Provider 與資源定義
o 變量(variables)與輸出(outputs)
o 狀態文件(State files)管理及其重要性
o 創建第一個 Azure 資源:Azure Resource Group、Virtual Network、Storage Account
o 練習:使用 Terraform 創建一個簡單的 Azure 網絡架構
5. 資源依賴與生命周期管理
o 資源依賴性及其處理
o 資源生命周期管理:創建、銷毀和修改
o 練習:修改已創建的資源並應用變更
第二天:Azure 資源的模塊化管理與最佳實踐 上午 (3.5 小時):
1. 模塊化管理與複用
o Terraform 模塊(modules)概念
o 如何編寫和使用模塊
o 實現模塊複用與團隊共享
o 項目案例:將第一個項目中的資源模塊化
2. Terraform 在 Azure 中的擴展功能
o Data Sources 的使用
o Output 和 Data Source 結合跨項目共享數據
o 遠程狀態管理:使用 Azure Blob 存儲管理狀態
o 鎖定機制:State 文件的並發管理
下午 (3.5 小時):
3. Terraform 與 Jenkins 集成
o CI/CD 基礎知識
o 使用 Jenkins 進行 Terraform 自動化部署
o Jenkins Pipeline 腳本編寫
o 自動化 Plan 和 Apply 的流程實現
o 項目案例:構建一個簡單的 Jenkins Pipeline 來部署 Terraform 配置
4. 錯誤排查與調試
o 常見錯誤與故障排除
o 資源漂移檢測與修複
o 練習:模擬常見錯誤並解決
第三天:實際項目部署與 CI/CD 集成 上午 (3.5 小時):
1. 實際項目部署概覽
o 項目架構設計與需求分析
o 實際項目:構建 Azure Kubernetes Service (AKS) / VMSS 集群 (集群類型根據項目複雜度待定)
o 資源規劃與模塊劃分:網絡、計算、存儲、身份認證
2. 高級功能與 Terraform 最佳實踐
o 環境隔離:使用工作空間管理多個環境(開發、測試、生産)
o 多環境部署的策略與實踐(dev/staging/production)
下午 (3.5 小時):
3. Terraform 與 GitOps 工作流
o 什麽是 GitOps?
o 實現 GitOps 的工作流:自動化 Terraform 部署
o 結合 Jenkins 的項目演示:Push 自動觸發 Terraform 部署
4. 項目總結與 Q&A
o 回顧:Terraform 的核心概念與最佳實踐
o 問題解答與學員項目展示
o 討論:企業中如何實施 Terraform + Azure 的最佳方案