在 Day03 我們使用 GCE 建立一台 VM,今天要學習如何連線到虛擬機,並在伺服器上使用 NodeJS 建置簡易的 Web 服務。
如果想使用自己的 Terminal 來連線至 VM ,可以透過 SSH 金鑰的方式。
ssh-keygen
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
(輸出結果)
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fw9uAk9ASgQ27Cf0I0pYmqySiB8Laqmd+uoU2Qc4Uek
The key's randomart image is:
+---[RSA 3072]----+
| o=+o |
| ..=o. . |
|.= *.o o |
|+.+ *E= . |
|+= o = .S. |
|B + . ... |
|o+.o +. o |
|o+o. oo. |
|B=+ o. . |
+----[SHA256]-----+
公私鑰就建立完成了,預設會存在 ~/.ssh
資料夾,,其中 id_rsa
是私鑰,id_rsa.pub
則是公鑰,接著把公鑰給複製起來放入 VM 裡,就能使用私鑰進行連線。
cat ~/.ssh/id_rsa.pub
# 印出的全部都複製起來
ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXX user@computer.local
console左上角 -> Compute Engine -> VM執行個體
編輯
顯示與編輯
儲存
ssh -i ~/.ssh/id_rsa <外部IP>
GCE 也提供了 Web Console 服務,透過瀏覽器就能連線到 VM
SSH
進行連線成功連線後會跳出瀏覽器視窗。
接著利用 NodeJS 建置簡單的 Web 服務,讓 Server 能對 Http 請求做出回應。
先透過 SSH Key 或 Web Console 的方式連線到 VM
更新伺服器
sudo apt-get update
sudo apt-get install -y nodejs npm
node -v
(輸出結果)
v10.19.0
npm -v
(輸出結果)
6.14.4
mkdir project && cd project
cat > package.json <<EOF
{
"dependencies": {
"express": "*"
},
"scripts": {
"start": "node app.js"
}
}
EOF
cat > app.js <<EOF
const express = require('express')
const app = express()
const port = 80
app.get('/', (req, res) => {
res.send('Hello IT-Home!!')
})
app.listen(port, () => {
console.log('Example app listening at port %s', port)
})
EOF
npm install
sudo npm start&
(輸出結果)
[1] 12871
> @ start /home/justin89721/nodeProject
> node app.js
Example app listening at port 80
http://<外部IP位址>
可以看到伺服器回傳訊息,最基本的 Web Service 就建立完成了。
sudo pkill -f node
今天學會了如何連線至 VM 並進行簡單操作,除了 Node 之外也可以嘗試部署如 nginx 等其他的應用,但這種在 VM 建置服務是較傳統的方式,之後的文章中就會學習到如何使用 Container 將應用程式打包並運行。