使用 Ansible 管理 Google Compute Engine

最近忙著佈署新的測試伺服器,而 Google Cloud Platform 剛好有提供 $300 兩個月的免費試用,且在台灣又有設點,所以我就決定拿 Google Compute Engine 來建置測試伺服器了。

Dynamic inventory

在開始之前,先稍微解釋一下何謂 Ansible 的 inventory,inventory 即代表伺服器,在 Ansible 中,可把伺服器列在 inventory file 中,藉此來分類伺服器,例如:

1
2
3
4
5
6
[webservers]
1.2.3.4 ansible_ssh_user=john
5.6.7.8 ansible_ssh_user=john

[dbservers]
9.10.11.12 ansible_ssh_user=mary

然而伺服器一多,管理 inventory file 就顯得有些麻煩,這時可以利用 dynamic inventory,只要把 inventory file 指定為可執行檔,Ansible 就能從執行檔的輸出中取得 inventory 資料。

Ansible 官方提供了各種主流主機商的 dynamic inventory,可以直接取用,而 GCE 當然也沒有缺席:http://docs.ansible.com/ansible/guide_gce.html

Read More

Algolia DocSearch

algolia-docsearch.jpg

DocSearchAlgolia 最近提供的一個免費搜尋引擎服務,只要登錄網站,他們就會爬好整個網站,使用者只要把 JavaScript 腳本貼到適當的位置上即可使用,和 Swiftype 差不多,只是搜尋結果更好,而且速度更快。

這篇文章可能看起來很像業配文,不過我真的沒收這家公司的錢啦 XD。

Read More

從 Redux 1 升級到 3

kazenokaze - Akari x Aria (id=53131016)

好久不見,在 資服創新競賽 結束後,我耍廢了好一段時間,更準確來說,從校內專題比賽結束後就開始耍廢了 XD,Hexo 的開發停滯這麼久真是不好意思 てへぺろ(・ω<)。

我在暑假時開始進入 Dcard,利用 React + Redux + React Router 寫了一個和現行網站完全分離的行動版網站,那時候 Redux 的文件還非常不齊全,很多東西都得自己摸索,不過拜 @tomchentw 所賜,解決了很多架構上的問題。

然而在我跑去寫 V2 API 的這兩個月,Redux 竟然從 1.0.0 升級到 3.0.4 了!React Router 也終於推出 1.0.0 了!原本以為新版 Admin panel 也能沿用相同的配置,沒想到還是有一些部分得推倒重來,不禁令人感嘆前端變化之快。

Read More

用 Travis CI 自動部署網站到 GitHub

志田 - 熊 (id=48083477)

長久以來,Hexo 官網都是由我手動在本機產生靜態檔案後,再 push 到 GitHub 上。這種方式對於簡單的網誌來說或許很輕鬆,但是對於偶爾會有 Pull Request 的專案來說就比較麻煩了。

在合併了 Pull Request 後,我必須自行把最新的 commit 拉到本機後再手動部署,有時比較忙就會擺爛,因此你會發現,雖然 Pull Request 已經被合併了,Hexo 網站本身卻仍未更新的情況。

Read More