Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20221116 混合雲架構師日常 如何使用 WSL 2 搭配 Ansible 自動化進行 Azure 維運管理

Phil Huang
November 16, 2022

20221116 混合雲架構師日常 如何使用 WSL 2 搭配 Ansible 自動化進行 Azure 維運管理

#DevDaysAsia2022

Phil Huang

November 16, 2022
Tweet

More Decks by Phil Huang

Other Decks in Technology

Transcript

  1. 混合雲架構師日常: 如何使用 WSL 2 搭配 Ansible 自動化進行 Azure 維運管理 Phil

    Huang 黃秉鈞 <[email protected]> Senior Cloud Solution Architect 2022/11/16 以部署 Azure Red Hat OpenShift 為例
  2. 天下武功,唯快不破 Photo by NASA on Unsplash https://unsplash.com/photos/Q1p7bh3SHj8

  3. 黃秉鈞 Phil Huang • 現任 Microsoft Sr. Cloud Solution Architect

    • 曾任 VMware / Red Hat 解決方案架構師 • Cloud Native Taiwan User Group 社群志工 • blog.pichuang.com.tw • 歷年演講經歷 • 如何採用雲原生作法 Velero 備份還原你的 Kubernetes 叢集? DevDays Asia 2021 講師介紹
  4. 從 WSL 2 探索 Azure Red Hat OpenShift 能力 •

    每個月測試預算有限 因多數為開發測試用途, 無須持續開啟環境,故選 擇上班日每日早上 09:00 開起資源,晚上 21:00 刪 除資源以節省成本花費 起心動念 • 裝置和身分權限設定嚴謹 若需要登入公司分發的 Azure Tenant,需使用公 司配發的筆電才能登入, 其他 BYOD 的設備無法 進行開發 • 現行多數 Open Source 皆須運行於 Linux 系統上 因現行開源軟體多數發展 還是以 Linux 為基礎,且 講者對 Linux 熟悉程度遠 高於 Windows,故須尋 找兩者平衡點
  5. Windows Subsystem Linux 2 • 常見使用場景 • 讓 AppDev 開發人員在

    Windows 上直接使用 Linux 環境進行程式開發,不需要特別修改或安裝 虛擬環境準備開發機,大量節省計算資源和管理成本 • 適用作業系統 • Windows 10 / 11 / Server 2019 / Server 2022 • 預設可啟用的 Distro • Ubuntu 18.04 / 20.04 • Debian • Kali Linux • SLES 12 / 15 • OracleLinux 8.5 / 7.9 • 若遇客製化 WSL Launcher 需求 (如 RHEL) 可採用 microsoft/WSL-DistroLauncher 或 yuk7/wsldl 可在 Windows 10+ 上本機運行 Linux 程式 Ref: http://aka.ms/wsldocs
  6. WSL 2 與虛擬機比較表 Windows Subsystem Linux 2 項目 WSL 2

    VM 資源隔離性 與既有 Windows 資源共用 獨立資源 預設開機速度 秒級開啟 (~3 second) 分鐘級開啟 預設記憶體消耗量 極小 中或大 完整 Linux 核心 是 是 Systemd 支援 預設沒開,需額外設定,於 2022/09/21 宣布 WSL2 要準備正式支援 有 可否客製化 Linux Distro? 可 可 可否執行多個 Linux Distro? 可 可 適用場景 個人自主開發環境 Production / UAT / SIT
  7. 以 Red Hat Enterprise Linux 8.6 on WSL 2 為例

    Windows Subsystem Linux 2 WSL 2 Kernel Linux Distro Windows Usermode Windows 11 Enterprise Windows NT Kernel
  8. 關於使用 WSL 2 應該要知道的事情 • 一般常討論的 Hyper-V 分為 2 個部分

    • Hyper-V 管理平台: 提供維運管理 VM 的服務 • 虛擬機器平台 (Virtual Machine Platform): 實際上提供 VM 具體能 力的服務 • 使用 WSL 2 不需要啟用 Hyper-V,僅需啟用下列 3 個功能 • Windows 子系統 Linux 版 (Windows Subsystem Linux) • 虛擬機器平台 (Virtual Machine Platform) • 於 BIOS 須啟動 Intel VT-X 或 AMD AMD-V • WSL 2 是基於 Virtual Machine Platform 辦到的,但因不具備任 何的維運管理能力,故主要是提供開發人員開發環境之用 Windows Subsystem Linux 2 Ref: https://learn.microsoft.com/zh-tw/windows/wsl/faq
  9. Ansible • 為何使用 Ansible 來做 IT 自動化? 1. 無代理服務 (Agentless):

    不需要特別的 Agent 放在被控端,管理方便 2. 學習曲線低: 僅需具備基本 Bash Script 或已知 Command 即可上手使用,附帶大量 Examples 參考 3. 重用方便: 方便重複使用,僅須具備基本 Linux 環境即可使用和開發 知名 Open Source IT 自動化部署工具,現以被 Red Hat 收購並且提供商業支援 Ansible Playbook Ansible Module Ansible Collection Linux IPMI Azure Resource Windows Network Devices VMware vSphere Kubernetes OpenShift
  10. 基於 DevSecOps 理念之 Ansible Playbook 開發概觀 全面落實零信任架構 (Zero Trust Architecture),資安融入開發生命週期

  11. Day 1 Implement: Ansible Playbook 個人開發流程 DevSecOps

  12. Day 2 Operation: 例行日常維運方法 DevSecOps *實際上,Operation 應該還要包含監控 (Monitoring)、Continuous Delivery 和其他階段討論,但本演講無特別涉入

  13. Ansible Playbook Task 流程設計原則 無論資深資淺人員執行時,都可以重複使用,且可預期產出結果 從上到下 依序執行 多設檢查點,強化防呆 名稱要清楚易讀 上

    git 版控管理 有可被驗證的交付物 提供必要參數匯入供其他人沿用
  14. Ansible Playbook Task 撰寫建議 ansible.builtin.{shell, command} 是萬用模組 • 針對 Azure

    環境 Ansible Module 採用建議順序: 1. 官方提供 Ansible Collection 2. azure-cli + ansible.builtin.{command, shell} 3. RESTful API • Ansible 所提供的 Azure 模組不一 定完全跟 azure-cli 所提供的功能 保持一樣,故只要覺得使用上有異 樣,建議可以採方式 2: azure-cli + ansible.builtin.{command, shell} 進行撰寫
  15. Time to Market In "ansible.cfg" [default] callbacks_enabled = profile_tasks, timer

    尋找瓶頸、分析鬆綁可行性 可做為 RTO 參考依據之一
  16. GitHub Copilot 加速 Infrastructure as Code (IaC) 開發效率 • 適用場景

    • 忘記 Windows 系統指令 怎麼寫? • 忘記 Bash Script 撰寫參 數? • Ansible Module 懶得查 語法文件? • Copilot 採行建議 • 它是輔助工具,最終撰寫 責任還是在 Coder 身上 • 它的強項是實踐內容,而 非流程或架構設計,最終 要寫什麼功能還是在 Coder 身上 以 AI 輔助開發人員撰寫程式碼或指令 Ref: https://youtu.be/NfxTfw35wls
  17. 綜觀全局的安全性思維 • 針對開發人員電腦 • Azure AD Conditional Access: 零信任政策治理 •

    Azure AD Privilege Identity Management: 特權 帳號管理及暫時性權限派送 • Azure AD Identity Protection: 自動化身分識別風 險分析,如非慣用登入位置、身分認證洩漏等 • Microsoft Intune: 跨行動裝置管理,譬如開發筆 電控管、軟體版本派送等 • 針對 Azure 環境 • Azure AD: 提供主動式、高整合度的身分驗證及管 控 • Microsoft Defender for Cloud: 強化 Azure 管理 政策 • Azure Network Security Group, Azure Firewall: 針對不同環境建置適當資安防護控制措施 以 Microsoft Cybersecurity Reference Architectures 零信任架構為基礎上進行合規、安全的開發和維運 Ref: Microsoft 企業的法遵挑戰與行動指南 https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE55yNt
  18. Day 0: 設計適切的 Azure 服務 • Cloud Adaption Framework 是

    Microsoft 融合客戶、夥伴及自身經驗所提供 Azure 服務 初始架構設計基礎,可隨需求變動架構 • 跟設計地端服務一樣,可從網路拓樸和連線考慮 (Network Topology & Connectivity) 章節 著手會是較好的起手 Microsoft Cloud Adaption Framework for Azure Ref: https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/app-platform/azure-red-hat-openshift/landing-zone-accelerator
  19. WSL 2 讓 Linux 為主的用戶更易於接受跨平台環境 1. 開發人員可以於 Windows 作業系統上採用 WSL

    2 進行各式各樣的開發,無須等待較長 及額外的資源準備 2. Ansible 是一個易於上手的軟體工具,搭配著 WSL 2 可以很容易的準備好開發環境協助 IaC 理念更容易地被落實到各部門 IT 人員上 3. Microsoft 提供了多層次雲原生服務協助客戶強化資安防禦能力、加速開發效率,包含但 不現於: • GitHub / Azure DevOps • GitHub Copilot • Microsoft Security • Azure AD Conclusion
  20. Thank You Microsoft Azure Taiwan Facebook 官方粉專 Azure Taiwan User

    Group Facebook 交流社團