[新玩具] Raspberry PI 2 伺服器



最近有些程式要測試,線上開了一台 VPS 在跑又覺得滿浪費的,只是測試還有自己寫的工具要掛上去這樣,雖說方便性很高,但就成本考量還可以再省點,於是敗家的理由就出來了XD

查了一下以前實驗室裡玩的樹莓派(Raspberry PI),果然今年有做一次大改版,性能提升不少,正好可以當一台放在家裡低耗功又能作業的伺服器。

Raspberry PI 2

不過整組下來也不是想像中的那麼便宜就是了,哈哈

抓整組4000NTD,若是VPS線上租用一個月5USD(150NTD),約可以租用26個月,但其實一定更少(因為最近3個月台幣貶值-2.98%,導致主機扣款多了一些Orz),但經過測試PI還滿耐用的,來賭賭人品 A__A

這次採購包含: PI主機、主機殼、HDMI->VGA轉接頭、電源線(沒Android手機的壞處之一)、WIFI dongle(Edimax EW-7811Un)、32GB MicroSD

其他螢幕、USB鍵盤滑鼠已經有了不用再買,更何況其實也不用滑鼠,鍵盤接上去就是指令完成,沒有GUI的Server

既然要當測試伺服器就不要搞起來太複雜,最好像VPS一樣滑鼠點一點就起來,專心在開發環境的部分。而PI也真的滿好處理的

Mac OS上: 參考這篇

Windows上: 參考這篇

簡單來說就是把SD卡格式化,將作業系統的映像檔給"燒"(copy)進去,速度取決於卡的等級,買好一點的卡就寫的快,整個過程最慢的大概是抓作業系統的時間了吧!

燒好後將SD卡插入卡槽,周邊接起來最後插電開機,很快就看到登入畫面,我選用Ubuntu的作業系統,帳密預設好都是ubuntu,登入後自行配置系統,就當作一台VPS來玩囉。

NodeJS的環境網路上有人打包好的這種node_latest_armhf.deb,不建議使用,並非完整一鍵安裝。用官方釋出的資源就夠了,有些版本裡面會有包含node-v0.XX.XX-linux-arm-pi.tar.gz這種的就可以抓下來安裝,方法如下

//自行替代XX版本號
wget https://nodejs.org/download/release/v0.XX.XX/node-v0.XX.XX-linux-arm-pi.tar.gz
//在這裡安裝
cd /usr/local
sudo tar xzvf ~/node-v0.XX.XX-linux-arm-pi.tar.gz --strip=1

沒放出PI版本的NodeJS自己來compiler也不慢,PI 2四核心全速下去跑差不多30~40分鐘內就搞定(我試過單核心跑,快一個小時….),方法如下

wget https://nodejs.org/download/release/v0.XX.XX/node-v0.XX.XX.tar.gz
tar xvzf node-v0.XX.XX.tar.gz
cd node-v0.XX.XX
./configure
make -j 4
sudo make install

PS: 記得先安裝好g++make這兩個必要的套件

其他服務也差不多,有就裝,沒有就自己編譯,把整套測試環境隨意玩,確定架構後再上線運作也比較放心。

家用環境的網路配置可以是區域網路(WIFI),也可以公開網路,區域網路走WIFI省的拉線,但是要外連還得設定一下WIFI AP做DMZ轉過去,但最終都會碰到一個問題,沒有固定IP,找不到他在哪!! AP也會時間到後去跟ISP那邊renew過一組IP,這個解法如果是在本機上寫一個記錄檔再來觀察變化的話對SD卡的生命也是不斷的磨耗,所以選擇當他是生命訊號,每幾分鐘對外刷存在感,寫一個Bash Script + Cron job就好。

#!/bin/bash
ip=`ip -4 route get 1 | head -1 | cut -d' ' -f8 | tr -d '\n'`
now=`date`
onlineuser=`users | tr '\n' ','`
printf -v data '{"IP":"%s","UpdatedAt":"%s","OnlineUsers":"%s"}' "$ip" "$now" "$onlineuser"
curl -X POST -d "$data" 'https://path.to/log/pi2'

想用哪種方式log都隨意,寫到某個自己或是雲端上的服務都可以,主要是自己方便看~

Share: