Try   HackMD

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 官方是否已有官方建議的自動化腳本最佳實踐,若有可否能一併展示一些範本?