筆記, 配置阿里雲 Cumulo(ClojureScript) 臨時開發環境

題葉發表於2019-02-16

我要在雲伺服器上開發 Cumulo 的服務, 基於 Node 和 shadow-cljs 執行,
剛發現阿里雲有按小時租賃伺服器的設定, 感覺自己以前的伺服器太慢, 就試試,

面對的問題

此前伺服器選擇香港節點, 發現網路還是有點延時, 另外配置較低,
考慮到大部分時間閒置, 不好意思買很高, 但是對於 shadow-cljs 來說太少,
因為 ClojureScript 編譯需要 Java, 冷啟動吃 CPU, 執行吃記憶體,
我考慮至少 3G 記憶體, 雙核 CPU, 那樣應該夠的.

之前的伺服器是共享的, 估計有限制, 我 CPU 持續跑滿半分鐘, 就會無響應,
提交工單還是沒解決, 我只能想到再買個伺服器了, 開發需要.

初始化伺服器

首先, 在阿里雲的介面裡選擇好配置了網路, 建立新的機器, 華東2機房,
我出於習慣選擇了 Ubuntu, 裡面的操作命令我比較熟悉,
建立需要幾分鐘, 完成之後會收到簡訊提示, 機器建立完成, 需要重置密碼,
於是就重置密碼, 然後還要重啟伺服器才能生效, 用 root 登入,
然後 adduser 命令建立自己的使用者, visudo 修改許可權, 登入新使用者.

安裝相關依賴

shadow-cljs 執行依賴 JDK, 所以要安裝一份, 版本 8 就好,
mosh 是處理 SSH 連線斷網的, 安裝後在伺服器需要啟動一下 mosh-server.

sudo apt-get update
sudo apt-get install aptitude
sudo aptitude install git openjdk-8-jdk mosh

參考官方文件, 安裝 Node.js :

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

參考官方文件, 安裝 yarn

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn

最後安裝一下自己的編輯器, 用來編輯程式碼:

sudo npm i -g calcit-editor

配置環境

然後為了方便登入, 執行一下 ssh-copy-id 拷貝本地的公鑰到伺服器.
前面說了伺服器已經有 mosh-server 在執行, 本地應該是可以用 mosh 命令登入的.
不過, 當前的安全策略還不可以, Mosh 採用 UDP 協議, 需要配置安全策略,
在”安全組規則”裡面, 允許 UDP 60000/610000.0.0.0/0 訪問.

除了 UDP 埠, shadow-cljs 相關還有 7000, 9630, 這些埠,
而 calcit-editor 用到 6001 6002 等等埠, 都需要加上,
考慮到我的伺服器還有 WebSocket 用到 5021 這個奇怪的埠, 範圍還要擴大.
我是直接在”安全組規則”把所有相關範圍都開啟了的

然後我需要有個 /data/ 目錄存放資料, 自己建立:

sudo mkdir /data
sudo chown -R chen:chen /data

另外兩次碰到需要修改奇怪的許可權, 這個路徑可能是 root 給我建立的.

sudo chown -R chen:chen /home/chen/.config/

然後就是在伺服器上使用 Git 的初始配置, 以及生成公鑰, 新增到 GitHub:

git config --global user.email jiyinyiyong@gmail.com
git config --global user.name jiyinyiyong
ssh-keygen
cat ~/.ssh/id_rsa.pub

執行服務

後面就是具體到 Cumulo 專案相關的內容了, 比如當前的應用:

git clone git@github.com:TopixIM/impatiens.git

然後 Cumulo Workflow 的文件把前後端都啟動起來, 執行一個伺服器.
基本就完成了, 一個可以在雲伺服器上開發的環境, 同時在遠端實時預覽效果.

相關文章