# DevOps Taiwan Meetup #3 CM 大亂鬥 - 上半場活動 本次的 DevOps Meetup #3,主題是「配置管理工具大亂鬥」,因此我們事先準備了幾種 CM Tools 常見的使用情境及對 CM Tools 的疑問。 讓各位講者可以事先針對這些情境與題目準備內容,屆時在 Meetup 現場可以與大家分享。 再次感謝各位講者的配合,謝謝大家! ### CM Tools 使用情境 針對以下幾種常見的 CM Tools 使用情境,還請各位講者事前預備你所使用的 CM Tool 是如何使用於這些情境。 不論你是打算「事先錄影」或 Live DEMO 皆可,希望可以讓聽眾看看 Tool 運作的模樣,也能稍微看看 code 的長相。但若不方便 DEMO,也可以僅僅展示 code 然後配合解說,讓聽眾了解可能的運作情形。 #### 狀況一、「單一 VM 安裝特定的軟體並設置環境」 情境描述: * 新建立一個 VM,需求是常見的 LEMP * Ubuntu 14.04 或 CentOS 7 * Nginx (版本不限) * MySQL (版本不限) * PHP (版本不限) * 設定 SSH config * 修改 SSH port 為 2222 * 設定 iptables * iptables 關閉所有的 port 只留下 80、443、2222。 #### 狀況二、「同時更新數台 Server 的軟體與 config」 情境描述: * 假設你手上同時管理兩台 Server 分別為: * ubuntu 14.04 * CentOs 7 * 有如前一陣子的狀況, OpenSSL 出現了漏洞,該如何同時對這兩台 Server 更新 OpenSSL? #### 狀況三、如何管理複雜的配置檔與環境? 情境描述: * 假設目前手上有三台 Server,一樣都是 LEMP (ubuntu 或 CentOS ) + nginx + mysql + php。三台分別代表了 development, staging, production 三種環境相似,但配置檔相異的環境,該工具是如何有效管理與分別建置環境? * 例如三台的 nginx.conf 與 php.ini 皆不相同,該怎麼處理? #### 狀況四、怎麼解決敏感資料問題? 情境描述: * 延續上一個情境,面對 development, staging, production 三種環境,專案程式碼中用來設定 DB 帳號密碼的 .env 也不盡相同,可是 .env 記載了重要的敏感資料(DB 帳號密碼),該工具是如何處理此狀況? * 第二種情境,透過 CM Tools 安裝軟體,例如 Mysql。若要透過 CM Tool 幫忙新增 root 帳號與密碼,勢必要告之 root 的密碼,這種機敏資料該如何保護? * 第三種情境,配置管理工具現在都可用來直接建置 Cloud 環境,例如透過 API 或 SDK 直接新增 AWS、DigitalOcean 上的 VM,那麼對於 Cloud 的帳號、Token、API secret key 這類的敏感資料,該工具是如何處理? #### 狀況五、能否展示 1 ~ 2 個你覺得設計良好的 CM Tools 自動化腳本。 情境描述: * 每個工具都有厲害的使用者,你有沒有看到哪一些寫得很厲害、結構漂亮,值得推薦參考的自動化腳本? * 該 CM Tool 官方是否已有官方建議的自動化腳本最佳實踐,若有可否能一併展示一些範本?