課程簡介
模塊 1:基礎設施即代碼與 Terraform 簡介
- IaC 概念及其對本地和混合環境的優勢。
- Terraform 概述:提供程序、資源、狀態和生命週期。
- 安裝 Terraform、Azure CLI 及所需工具。
- 首次實踐:編寫簡單的 Terraform 配置並在本地應用。
模塊 2:HashiCorp 配置語言(HCL)與配置基礎
- HCL 語法、資源、屬性和表達式。
- 變量、輸出、本地變量和類型約束。
- 使用 Terraform CLI:init、plan、apply、destroy 和 fmt。
- 實踐實驗室:爲本地資源和 Azure 資源構建參數化配置。
模塊 3:提供程序、資源與 Azure 提供程序基礎
- 瞭解提供程序及提供程序配置(AzureRM 提供程序)。
- 將基礎設施映射到 Terraform 資源(網絡、計算、存儲)。
- 管理 Azure 認證和服務主體以實現自動化。
- 實踐:通過 Terraform 配置 Azure 虛擬網絡和簡單虛擬機。
模塊 4:狀態管理、後端與協作
- Terraform 狀態:目的、格式和生命週期考慮。
- 使用 Azure 存儲賬戶的遠程後端和狀態鎖定策略。
- 工作空間、環境和團隊協作模式。
- 實驗室:在 Azure 存儲中配置遠程狀態並執行多用戶工作流。
模塊 5:模塊化、可重用性與最佳實踐
- 編寫和使用 Terraform 模塊。
- 模塊輸入/輸出、版本控制和註冊表模式。
- 文件夾佈局、命名約定和可維護的倉庫結構。
- 實踐:創建可重用的 Azure VM + 磁盤 + 網絡模塊,並在不同環境中測試。
模塊 6:管理 Azure 虛擬設備與本地集成
- 通過 Terraform 管理 Azure 虛擬機、虛擬桌面組件和設備生命週期。
- 混合設備管理模式:連接本地資源和 Azure 管理的設備。
- 通過數據源和外部提供程序集成容量或設備管理系統。
- 實驗室:部署代表操作單元的 Azure 虛擬機羣,並配置庫存標記和基本監控。
模塊 7:CI/CD、自動化與部署管道
- 將 Terraform 與 CI/CD(GitHub Actions、Azure DevOps 管道)集成。
- 使用安全祕密和服務主體自動化 plan/apply。
- 策略即代碼基礎(Sentinel 或 Open Policy Agent 模式)和預部署檢查。
- 實踐:創建一個簡單的 GitHub Actions 工作流,針對沙盒訂閱進行 Terraform 計劃和應用。
模塊 8:安全性、祕密與操作實踐
- 管理祕密:Azure Key Vault 集成,避免在狀態文件中存儲敏感數據。
- 訪問控制、RBAC 和自動化賬戶的最小權限。
- 漂移檢測、狀態調和與基本修復實踐。
- 清單:Terraform 管理的基礎設施的備份、審計和治理。
模塊 9:測試、調試與故障排除
- 調試 Terraform 配置並有效讀取計劃差異。
- 單元和集成測試方法(terraform validate、tflint、kitchen-terraform)。
- 常見錯誤模式與解決策略。
- 實驗室:運行驗證和 linting 工具並修復發現的問題。
模塊 10:畢業項目 — 混合部署場景
- 設計練習:使用所學模式規劃一個本地 + Azure 設備部署。
- 使用模塊、遠程狀態和 CI/CD 管道片段實現核心組件。
- 展示解決方案,討論權衡並審查操作手冊。
總結與下一步
最低要求
- 瞭解基本的網絡和虛擬化概念。
- 熟悉 Windows 或 Linux 命令行。
- 具備雲或本地基礎設施概念的基本知識。
目標受衆
- 系統管理員和平臺工程師。
- 剛開始接觸基礎設施即代碼的 DevOps 從業者。
- 管理混合(本地 + Azure)基礎設施的 IT 團隊。
客戶評論 (5)
我很喜欢这个练习的技术方面 - 看到Terraform的实际应用并能够看到在Azure中创建资源的过程非常好。
Brett Hawson - Reach Plc
課程 - Terraform on Microsoft Azure
機器翻譯
培訓師的靈活性,可以根據小組反饋或興趣領域調整知識共用
Alexandru - Orange Services
課程 - Advanced Terraform: Efficient Infrastructure as Code
機器翻譯
它澄清了我對 terraform 的一些不瞭解。
Catalin - DB Global Technology
課程 - Advanced Terraform - 3 Days
機器翻譯
Deep knowledge
Akhand Raj Jaiswal - BMW
課程 - Advanced Terraform
Trainer has good knowledge over the content and answered all my queries