實作Rails上架狗哥雲端(GCE)-2

張凱喬
7 min readOct 22, 2018

--

第二篇,來寫用SSH接上遠端VM
以及把VM準備好一些ruby及伺服器的環境

先補充一些SSH知識

source:https://www.hostinger.com/tutorials/ssh-tutorial-how-does-ssh-work#gref

Secure Shell(安全外殼協定,簡稱SSH)
是一種加密的網路傳輸協定

這個協定會用公鑰跟私鑰,來處理登入程序

簡單來說,就很像一個暗號、公式
電腦會幫你把這個暗號再加密
然後本機跟遠端交換這些加密資訊之後
確認彼此身份沒錯,就開始連線

這邊直接使用Google教學
有建議一些步驟,我這邊講最簡單的指令
想深入了解的話可以參考下列連結

步驟一:產生SSH金鑰

在本機終端機輸入指令,產生一組SSH金鑰

ssh-keygen -t rsa

輸入之後會問你要存在哪、要不要設密碼之類
都按enter即可跳過,然後就會顯示下面這串,代表存好金鑰了~

Your identification has been saved in /Users/[你的使用者名稱]/.ssh/id_rsa.
Your public key has been saved in /Users/[你的使用者名稱]/.ssh/id_rsa.pub.

雖Google教學建議是ssh-keygen -t rsa -f ~/.ssh/my-ssh-key -C [USERNAME]
其中-f是指定金鑰名稱、-C是標記使用者名稱

注意到,如果沒有指定名稱及檔案位置的話
系統預設是在 .ssh 資料夾內產生 id_rsa、id_rsa.pub

pub這個檔案就是紀錄公鑰

步驟二:把公鑰貼上GCP

首先 在本機終端機查看公鑰檔案

cat ~/.ssh/id_rsa.pub

把整串複製起來,然後打開GCE的頁面
在左邊工具列找到”中繼資料”跟”編輯”

按編輯之後,點選輸入新項目
把剛剛那個公鑰檔案內容複製貼上

這邊要做個小動作,就是把最後的使用者名稱改掉
本機公鑰的使用者預設會像是-> KC@MacBook.local
把這段拿掉,換成你的google使用者名稱(如下圖紅線處就是我的帳號)

後按儲存、然後重啟GCE(如下圖的重設),搞定

步驟三:試著登入看看

ssh [你的google帳號]@[外部IP]

下圖就是我的範例,第一次登入會要你確認,輸入yes之後,就會登入囉

之後你當前的終端機的前置符號就會變成[你的google帳號]@[伺服器名稱]:
像是這樣,就代表你已經成功進入你的VM裡了

步驟四:更新VM環境

成功登入VM之後,就順便把系統更新一下
最快的方法就是輸入

sudo apt-get upgrade -y

-y的意思就是當遇到任何要確認的事情就自動幫我y吧

其他參考

順便設定一下時區

sudo dpkg-reconfigure tzdata

選擇“Asia/Taipei”

步驟五:準備VM的Ruby

當你已經有一個可以work的VM
就可以把Ruby及伺服器都安裝好

參考iHower大大

因為已經有教學了,所以這邊簡單貼碼帶過

安裝Ruby,在VM內陸續執行以下每行

sudo apt-get install software-properties-common
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.4 ruby2.4-dev
ruby -v

brightbox是間雲端服務公司,已經把Ruby打包好了 方便Ubuntu安裝
注意到我目前是用ruby2.4,如果你使用不同版本,記得修改安裝版號
最後一行ruby -v則是用來確認安裝好Ruby了(會顯示出當前ruby版號)

然後記得安裝兩項rails部署過程中會用到的工具
在VM內陸續執行以下每行

sudo gem install bundler
sudo apt-get install nodejs

步驟六:在VM準備SQL

安裝SQL,在VM內陸續執行以下每行

sudo apt-get install mysql-common mysql-client libmysqlclient-dev mysql-server

安裝中會要求你輸入密碼,要把密碼記住喔~
安裝完之後進入mysql consol,輸入密碼後登入console

mysql -u root -p

創建資料庫(database)

CREATE DATABASE [databasename] CHARACTER SET utf8mb4;

[databasename]那邊隨便打個好認的名字
之後我們會在rails專案中指定這個資料庫名字
然後輸入quit結束mysql console

步驟七:在VM內準備Nginx + Passenger

最後安裝 Nginx + Passenger (就是網站伺服器的功能)
這邊有點複雜,就直接按照iHower大大的指令完成吧

OK之後,在你的瀏覽器中 輸入VM的IP位置
(注意要用HTTP,而不是HTTPS)
看到下圖,就代表完成Nginx的配置

到這邊搞定VM的環境

大家可能注意到沒有安裝Rails
因為Rails將一併在下一篇的自動化部屬處理
下一篇見~

--

--

No responses yet