用 Drone CI/CD 整合 Packer 自動產生 GCP 或 AWS 映像檔

Screen Shot 2018-07-29 at 12.47.51 PM 本篇來介紹 Hashicorp 旗下其中一個產品叫 Packer,其實在 Hashicorp 旗下有很多其他雲端工具都非常好用,如果大家有興趣都可以上官網參考看看。而 Packer 是用來產生各大雲平台映像檔的工具,平行產生 AWS, GCP, DockerDigitalOcean … 等等眾多雲平台之映像檔對 Packer 來說相當容易,詳細可以參考這邊,也就是說透過 Packer 來統一管理各大雲平台的映像檔,用 JSON 檔案進行版本控制。假設您有需求要管理工程團隊所使用的 Image,你絕對不能錯過 Packer。Packer 不是用來取代像是 Ansible 或是 Chef 等軟體,而是讓開發者更方便整合 Ansible .. 等第三方工具,快速安裝好系統環境。 Continue reading “用 Drone CI/CD 整合 Packer 自動產生 GCP 或 AWS 映像檔”

用 Caddy 申請 Let’s Encrypt Wildcard 憑證

Screen Shot 2018-07-27 at 11.29.44 AM 2018 年 3 月 Let’s Encrypt 官方正式公告支援 Wildcard Certificate 憑證,有在玩多個 subdomain 有福了,未來只要申請一張 *.example.com 就全部通用啦,當然很高興 Caddy 也跟進了,在 v11.0 正式支援多種 DNS Provider,只要申請 DNS 提供商的 API Key 或 Secret 設定在啟動 Caddy 步驟內就可以了。底下用 Godaddy 舉例。 Continue reading “用 Caddy 申請 Let’s Encrypt Wildcard 憑證”

在本機端快速產生網站免費憑證

SSL-Certificate 大家看到網站免費憑證,一定會想到 Let’s encrypt 服務商提供一個網域可以使用 100 個免費憑證,如果您有很多 subdomain 需求,還可以申請獨立一張 wildcard 憑證,但是這是在伺服器端的操作,假設在本機端開發,該如何快速產生憑證,這樣開啟瀏覽器時,就可以看到綠色的 https 字眼 Snip20180706_2 Continue reading “在本機端快速產生網站免費憑證”

Drone 搭配 Kubernetes 部署 Go 語言項目

Screen Shot 2018-06-04 at 9.19.46 AM 在之前寫過一篇『Drone 搭配 Kubernetes 升級應用程式版本』,裡面內容最主要介紹 honestbee 撰寫的 drone 外掛: drone-kubernetes,但是此外掛並非用 Go 語言所撰寫,而是用 Shell Script 透過 kubectl set image 方式來更新專案項目,但是這邊會有幾個缺點,第一點就是假設在 Develop 環境永遠都是吃 master 分支,也就是讀取 Image 的 latest 標籤,這時候此外掛就無法作用,第二點此外掛無法讀取 kubernetes YAML 檔案,假設專案要修正一個 ENV 值,此外掛也無法及時更新。綜合這兩點因素,只好捨棄此外掛,而本篇會帶給大家另一個用 Go 語言所撰寫的外掛,是由 @Sh4d1 所開發的項目,用法相當容易,底下會一步一步教大家如何部署 Go 語言項目。 Continue reading “Drone 搭配 Kubernetes 部署 Go 語言項目”

[影片教學] 使用 Filter 將專案跑在特定 Drone Agent 服務

drone-logo_512 Drone 是一套用 Go 語言撰寫的 CI/CD 開源專案,是由一個 Server 跟多個 Agent 所組成,Agent 上面必須安裝好 Dokcer 才可以順利測試及部署,但是團隊內會出現一個狀況,每個專案的測試及部署方式不同,有的測試需要 Agent 很多 CPU 或記憶體資源,有的小專案則不需要那麼多,但是當大專案把 agent 系統資源吃光,其他專案都跑不動了,這邊的解決方式就是再建立一台新的 Agent 服務,將需要大量資源的專案跑在該台新的 Agent,Drone 這邊有支援 filter 功能,讓開發者可以指定專案要跑在哪一台 Agent 上。底下來教大家如何設定 drone filter。 Continue reading “[影片教學] 使用 Filter 將專案跑在特定 Drone Agent 服務”

Go 語言搭配 Docker Healthy Check 檢查

Screen Shot 2018-03-17 at 11.40.12 PMDocker 1.12 版本後,提供了 HEALTHCHECK 指令,通過指定的一行命令來判斷容器內的服務是否正常運作。在此之前大部分都是透過判斷程式是否 Crash 來決定容器是否存活,但是這地方有點風險的是,假設服務並非 crash,而是沒辦法退出容器,造成無法接受新的請求,這就確保容器存活。現在呢我們可以透過在 Dockerfile 內指定 HEALTHCHECK 指令來確保服務是否正常。而用 Go 語言開發的 Web 服務該如何來實現呢? Continue reading “Go 語言搭配 Docker Healthy Check 檢查”

Drone CI/CD 系統簡介

Screen Shot 2018-01-18 at 10.21.43 AM 很高興到 GCPUG.TW 分享『Drone CI/CD 系統簡介』,會議介紹了 Drone 系統架構,這套是由 Go 語言所開發,前兩年我參加了 Drone 開源專案的開發,也貢獻了數個 Drone Plugin,去年我正式開始宣傳 Drone 的好處及優勢,以及為什麼要從 JenkinsGitLab CI 轉換到 Drone,會議大綱如下,很感謝 QNAP 提供現場直播及錄影。 Continue reading “Drone CI/CD 系統簡介”

DigitalOcean 2018 年調整價格

DO_Logo_Vertical_Blue-6321464d 很高興看到 DigitalOcean 在 2018 年推出新的 VPS 價錢方案,可以從下面這張圖看出來,記憶體幾乎都調整為兩倍方案,這已經完全追上 Linode 現在的價格了,另外 DigitalOcean 還額外推出每個月 $15 美金方案,還可以動態選擇要高 CPU (1~3) 還是高記憶體 (1G ~ 3G) 由玩家自由搭配,這方案真的是太棒了。 Continue reading “DigitalOcean 2018 年調整價格”