部署RoR生產環境到阿里雲ECS (一)

關於如何在阿里雲ECS(Ubuntu16.04)上部署RubyonRails的一些心得,希望分享給更多的rubyist知道;

本文討論的是如何在阿里雲上部署rails生產環境;

首先ECS創建的時候阿里雲會一個root賬號和一個管理員密碼,ssh root@ip_address(公網) 配以密碼不是特別方便,建議在本機電腦上創建一對公鑰私鑰,並且把公鑰上傳到阿里雲的ESC服務器,可以參考我的openssh討論

在可以實現 ssh server-name以後,我們會發現現在登陸的是root用戶,root用戶擁有的權限太高,不小心的操作就會對linux系統造成不可逆的破壞,所以一般的建議是新建一個新的用戶,我個人也強烈建議這麼做,除非對linux系統命令非常熟悉知道自己的幹什麼。

創建新的linux用戶

在linux(Ubuntu16.04)系統中, 可以通過下面的命令來創建:

$ adduser rails

在彈出的對話裏面只要提供密碼和密碼驗證,後面的問題都直接回車就行;

$ usermod -aG sudo rails

這個命令是添加新的用戶到sudo這個用戶組。在linux系統中,不可避免的要使用一些只有系統管理員才能使用的命令,sudo前綴可以讓當前用戶暫時獲取root的資格並且以root的身份去運行一些命令,比如services,但是隻有sudo組裏的用戶才能使用這個sudo命令。

$ cat /etc/passwd

可以用來查看本機當前所用的用戶, 新用戶添加以後,/root/rails/ 就自動創建,就是當前用戶的默認路徑。
現在我們可以切換到我們新建的用戶了
$ su - rails
可以通過相當的方法上傳過id_rsa.pub到 /home/rails/.ssh,以後都可以通過ssh rails@ip_address來登陸

安裝必要的軟件

現在我們的登陸賬戶是rails了, 現在可以安裝git上傳下載代碼,然後安裝rbenv,rbenv,rails,nodejs。

安裝git

$ sudo apt-get install git

使用git命令以前要先設置全局用戶

$ git config --global user.name = "YOUR NAME"
$ git config --global user.email = "[email protected]"

或者:

$ vim ~/.gitconfig
[color]
        ui = true
[user]
        name = YOUR NAME
        email = [email protected]
[push]
        default = current
[pull]
        default = current

如果不幸的你和我一樣github激活了多重驗證,你需要在你的服務器端生成一對公鑰私鑰,然後把公鑰添加到你的github賬戶可以參考這個github幫助

別忘了添加一下這行到你的 ~/.ssh/config文件中;

Host github.com
  IdentityFile ~/.ssh/github_rsa # 用你自己的私鑰

這樣你訪問git clone [email protected] ... 的時候就能自動使用你剛剛生成的私鑰作爲ssh連接了。

安裝rbenv作爲ruby的版本管理

$ sudo apt-get update
$ sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev

這麼多必要的包誰也記不住,網上的帖子很多,總歸是前任總結的經驗教訓,發帖的目的不就是廣爲傳播這些記不住的冷知識嘛,好了可以正式下載rbenv了, 我們直接從它的github下載源碼,github上也有他的安裝說明,我就從簡說明了

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc

添加路徑是爲了全局的使用rbenv給我們提供的一些ruby和gem的使用工具, 具體的安裝可以參考github。我以前一直使用chruby和ruby-install來作爲輕量級的ruby版本管理,事實證明rbenv提供的路徑工具能非常方便幫助我們通過systemD腳本來運行railsAPP,所以我建議大家直接使

用rbenv,如果有人爲爲什麼不用rvm,都是累啊,太龐大了,相當於僱100人管理只有幾人的公司,我們的小機受不了啊,bug多什麼的也就是聽說,我也就用了一年就換chruby了。

安裝ruby

rbenv安裝好了以後,我們可以通過他的插件ruby-build來安裝ruby

$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

這樣我們就能直接安裝使用rbenv install命令了。

$ rbenv install 2.5.0

你也可以安裝自己需要的版本

$ rbenv global 2.5.0

設置全局ruby版本,然後就是安裝rails和nodejs,安裝nodejs是因爲rails的assets管理需要用到。

$ gem install rails --no-ri --no-rdoc
$ sudo apt-get install nodejs
$ rails -v
$ node -v

檢測安裝的rails版本和nodejs版本;

下載rails APP代碼

不知不覺寫了這麼多了,我最恨最怕就是tl;dr(too long, don't read); 所以後一半的內容下回再發表吧,¯_(ツ)_/¯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章