Walle 2.0的詳細部署與應用以及錯誤處理

                                                                           Walle 2.0的詳細部署與應用

Walle

      最近walle 更新了2.0,感覺自己用的版本有點舊了,所以想的學習一下,並部署與應用,Walle是 一個web部署系統工具,所以應用的場景比較多,所以更新也是有必要的,接下來我們來了解一下walle2.0,舊版本部署可以看一下: walle項目部署

環境:(一臺配置了LAMP/LNMP的linux機器,並且安裝git/svn)上操作。

一、代碼檢出與目錄結構分析

1)在github申請賬號,配置keys,使用git來克隆

登陸github官網 :https://github.com/ 註冊賬號

註冊完畢後,添加ssh keys密鑰,如下圖所示

 image.png

找到ssh keys,然後添加密鑰

 image.png

把本地已經配置lnmp的/root/.ssh/id_rsa.pub的密鑰添加到web 的key。

[root@node2 ~]# cat /root/.ssh/id_rsa.pub

 image.png

密鑰添加完後,我們就可以接下的安裝了

#mkdir -p /data/wwwroot # 新建目錄,也是你的虛擬walle的目錄
#yum install –y git/svn
#git clone [email protected]:meolu/walle-web.git .          # walle2.0代碼檢出

配置了keys後成功克隆如下:


注意:

1.多版本是這個

git clone [email protected]:meolu/walle-web-v1.x.git


[root@node2]# git clone [email protected]:meolu/walle-web.git

 

image.png

2、因爲是2.0,所以我們查看一下目錄的結構先

 image.png

接下來我們來對比一下1.x的

 image.png

我們可以發現,兩個版本的代碼對比,相差太遠了。2.0版本的都是以腳本來啓動了,這就有點厲害了,整個項目都是通過admin.sh,來啓動的,主要有下面兩個。

sh admin.sh start  #啓動walle端口服務

sh admin.sh migration #加載數據庫,創建表與添加數據

接着對比一下web目錄(裏面的代碼就沒必要看了)

 image.png

以前的版本:

 image.png

發現連前端頁面直接用html了,改動的挺大的。

3、改動都不用理會,看一下官網是如何安裝的。

官方文檔:http://www.walle-web.io/docs/installation.html

總的來說官方安裝說的比較清楚的,但是細節方面少了點。

二、walle安裝

1、配置虛擬主機(首先安裝了的lnmp)

添加虛擬啓動目錄

先在nginx,添加虛擬主機目錄

#vim /usr/local/nginx/conf/nginx.conf
http{
include vhost/*.conf; 
}
添加虛擬主機
#vim /usr/local/nginx/conf/vhost/walle.conf
upstream webservers {
    server 0.0.0.0:5000 weight=1; #這個是walle項目的啓動端口
 }
server {
    listen       80;
    server_name  server.walle.com; # walle域名設置,這個域名設置比較重要,需要在walle的配置一致
    access_log   /data/wwwlogs/walle.log combined; 
    index index.html index.htm index.php; # 日誌目錄
    location / {
        try_files $uri $uri/ /index.html;
        add_header access-control-allow-origin *;
        root /data/wwwroot/walle-web/fe; # 前端代碼已集成到walle-web,即walle-web/fe的絕對路徑
    }
    location ^~ /api/ {
        add_header access-control-allow-origin *;
        proxy_pass      http://webservers;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header    Origin        $host:$server_port;
        proxy_set_header    Referer       $host:$server_port;
    }
    location ^~ /socket.io/ {
        add_header access-control-allow-origin *;
        proxy_pass      http://webservers;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header    Origin        $host:$server_port;
        proxy_set_header    Referer       $host:$server_port;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        # WebScoket Support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

重新加載nginx

#service nginx reload

2、配置hosts指定

如果虛擬主機配置是應用IP與端口,這個就可以不配置,不過不建議,畢竟用域名管理比較好,畢竟一個主機有多臺虛擬主機。

#vim /etc/hosts
172.25.0.30 server.walle.com  #本地IP,這個域名提供給walle鏈接用


3、配置walle配置參數

[root@node2 walle-web]# pwd
/data/wwwroot/walle-web
[root@node2 walle-web]# vim  walle/config/settings_prod.py


這個目錄是配置各種參數的。

注意: 帶了 @TODO 的地方可能需要你的調整,注意數據庫是5.6.5以上的版本

 image.png

mysql用戶名可以自己創建,我這裏直接就用root了

注意:這個host的配置指向,一定要與虛擬主機配置一致,不然訪問就會出現網絡鏈接錯誤的

4、安裝Python2.7+pip

#sh admin.sh init

 image.png

成功結果:

 image.png

5、創建數據庫,並添加表與數據

[root@node2 conf]# mysql   -uroot  -p123456  -e'CREATE SCHEMA walle'
mysql: [Warning] Using a password on the command line interface can be insecure.

執行創建表的腳本命令

[root@node2 conf]#sh admin.sh migration

 image.png

6、啓動walle

#sh admin.sh start或者#sh admin.sh restart

 image.png

7、查看啓動狀態

 image.png

可以發現5000的端口已經啓動了。

8、登錄

本地添加hosts (略)

訪問域名

 image.png

可以發現,我們可以正常的的訪問了。

默認提供的賬戶登錄

超管:[email protected] \ Walle123

所有者:[email protected] \ Walle123

負責人:[email protected] \ Walle123

開發者:[email protected] \ Walle123

訪客:[email protected] \ Walle123

我們以所有者的賬戶登錄:

發現界面更改挺大的。

 image.png

三、項目部署

1、搭建完了,接着我們最重要的項目部署了

 image.png

接着,我們隨便配置一個項目

先添加服務器IP先,新版本的項目的服務器IP都放在服務器管理了,這個弄起來方便多了。

image.png

 2、新建項目

  image.png

任務配置,先不配了,配置完,如下了:

 image.png

3、配置密鑰,與目錄權限

1)生成發佈用戶的密鑰

 image.png

因爲是發佈到本地,所以本地添加密鑰就好

把www用戶與root的id_rsa.pub一起放到authorized_keys文件中,舊版本的只要www就可以了

[www@node2 .ssh]$ cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYrOAdjDxzjGjxkAx0+5K+WOakhzeejVym/RKq9dyuanTX7y72XhQoYs46IJQ2sYdPskKsJ5fDFwH1AbG3TYYm7ihQkUOITXu9cHT1BJWlZm7KZidOEwsq6WmDzvnsdPzihAGtAVYM6VP7IoOMt6wsMG28uMd7iGLBJL879TGOfOEMVhOAfV4vmd69tCz9U/sdMYS+KR/cgjRISgZxQSMQFzbGcJYSQbpJxFyHMjiqRAShgNdISRDDFvYnenDktbGeMgmUjL9PLXKQsqvo1onD9Q7VNuzhJ9h8p6M5bZr/qpJtXFAHhICnezHBjojwIXbxC7E9t5m389KRmBHv www@node2
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQ+nz7mgoEaYhCLwHkiYuiKWPX46sVKAg4/7TZASuY5oENmGubp9zfYkzy0luYroJj509gB6GN20qCdriqtFuqvcq/v0KB2KsXPVmSPTa2gDB3NeFrrNaLYedbDWmoQkIu6U0NgzblGlyo3yW+RtbQKpxPV/dUOcrq2k6TOPk4lHgb4mdViIT938d3yae0ZcmMRR9HjzD1Qrinns6OHILSvpzKmDcRkV46unYvbTP/704NeUBtMyPTD5GRdfJK7QyNEt17DvNuaf5MG1P/Yz87AlFMCzA2pkE0ondBT3KM2COgv7eD9Pyy03OHkb0JMjq63tmoX074FGHzX9Tz root@node2

2)創建目錄,授予權限

[root@node2 walle-web]# mkdir -p /data/publish
[root@node2 walle-web]# chown www:www -R /data/publish

3)項目檢測

 image.png

4)、項目發佈

第一次加載分支有點久,不知是否是網絡的問題

 image.png

經過一波三折,總是上線成功,結果如下

 image.png

5)發佈時錯誤出現

在上線的過程中,出現如下的錯誤

image.png

 我們可以發現2.0的,已經可以提供了發佈過程的命令配置界面,這就方便我們去找錯誤了,從上面的錯誤提示,是權限問題。

剛開始我還以爲我的密鑰問題,弄了好久,還把ssh服務弄down了,不過很快就想到以前我也是做了密鑰驗證了,是已經可以用www用戶操作一些命令的。所以不是這個問題。

找了很久,發現是權限問題。

[root@node2 data]# l
total 4.0K
drwxr-xr-x 3 root  root    18 Feb 27 10:45 publish/
drwxr-xr-x 7 mysql mysql 4.0K Feb 27 09:53 mysql/
drwxr-xr-x 4 root  root    55 Feb 26 16:24 wwwroot/
[root@node2 walle-web]# chown www:www -R /data/wwwroot

因爲以前wwwroot默認是www權限,沒有想到,啥時候所屬者變成root,有點難受,這就受到教訓,不是親眼看一下不要相信。

四、總結

   舊版本切換新版本,搞到我大半天,注意點細節就不用搞的那麼久了,walle2.0,界面感覺還不錯,不過添加一些不受版本控制的代碼,可能要麻煩點。。。。


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