Walle 2.0的詳細部署與應用php
Walle:html
最近walle 更新了2.0,感受本身用的版本有點舊了,因此想的學習一下,並部署與應用,Walle是 一個web部署系統工具,因此應用的場景比較多,因此更新也是有必要的,接下來咱們來了解一下walle2.0,舊版本部署能夠看一下: walle項目部署前端
環境:(一臺配置了LAMP/LNMP的linux機器,而且安裝git/svn)上操做。node
1、代碼檢出與目錄結構分析mysql
1)在github申請帳號,配置keys,使用git來克隆linux
登錄github官網 :https://github.com/ 註冊帳號nginx
註冊完畢後,添加ssh keys密鑰,以下圖所示git
找到ssh keys,而後添加密鑰github
把本地已經配置lnmp的/root/.ssh/id_rsa.pub的密鑰添加到web 的key。web
[root@node2 ~]# cat /root/.ssh/id_rsa.pub
密鑰添加完後,咱們就能夠接下的安裝了
#mkdir -p /data/wwwroot # 新建目錄,也是你的虛擬walle的目錄 #yum install –y git/svn #git clone git@github.com:meolu/walle-web.git . # walle2.0代碼檢出
配置了keys後成功克隆以下:
注意:
1.多版本是這個:
git clone git@github.com:meolu/walle-web-v1.x.git
[root@node2]# git clone git@github.com:meolu/walle-web.git
二、由於是2.0,因此咱們查看一下目錄的結構先
接下來咱們來對比一下1.x的
咱們能夠發現,兩個版本的代碼對比,相差太遠了。2.0版本的都是以腳原本啓動了,這就有點厲害了,整個項目都是經過admin.sh,來啓動的,主要有下面兩個。
sh admin.sh start #啓動walle端口服務
sh admin.sh migration #加載數據庫,建立表與添加數據
接着對比一下web目錄(裏面的代碼就不必看了)
之前的版本:
發現連前端頁面直接用html了,改動的挺大的。
三、改動都不用理會,看一下官網是如何安裝的。
官方文檔:http://www.walle-web.io/docs/installation.html
總的來講官方安裝說的比較清楚的,可是細節方面少了點。
2、walle安裝
一、配置虛擬主機(首先安裝了的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
二、配置hosts指定
若是虛擬主機配置是應用IP與端口,這個就能夠不配置,不過不建議,畢竟用域名管理比較好,畢竟一個主機有多臺虛擬主機。
#vim /etc/hosts 172.25.0.30 server.walle.com #本地IP,這個域名提供給walle連接用
三、配置walle配置參數
[root@node2 walle-web]# pwd /data/wwwroot/walle-web [root@node2 walle-web]# vim walle/config/settings_prod.py
這個目錄是配置各類參數的。
注意: 帶了 @TODO 的地方可能須要你的調整,注意數據庫是5.6.5以上的版本
mysql用戶名能夠本身建立,我這裏直接就用root了
注意:這個host的配置指向,必定要與虛擬主機配置一致,否則訪問就會出現網絡連接錯誤的
四、安裝Python2.7+pip
#sh admin.sh init
成功結果:
五、建立數據庫,並添加表與數據
[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
六、啓動walle
#sh admin.sh start或者#sh admin.sh restart
七、查看啓動狀態
能夠發現5000的端口已經啓動了。
八、登陸
本地添加hosts (略)
訪問域名
能夠發現,咱們能夠正常的的訪問了。
默認提供的帳戶登陸
超管:super@walle-web.io \ Walle123
全部者:owner@walle-web.io \ Walle123
負責人:master@walle-web.io \ Walle123
開發者:developer@walle-web.io \ Walle123
訪客:reporter@walle-web.io \ Walle123
咱們以全部者的帳戶登陸:
發現界面更改挺大的。
3、項目部署
一、搭建完了,接着咱們最重要的項目部署了。
接着,咱們隨便配置一個項目
先添加服務器IP先,新版本的項目的服務器IP都放在服務器管理了,這個弄起來方便多了。
二、新建項目
任務配置,先不配了,配置完,以下了:
三、配置密鑰,與目錄權限
1)生成發佈用戶的密鑰
由於是發佈到本地,因此本地添加密鑰就好
把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)項目檢測
4)、項目發佈
第一次加載分支有點久,不知是不是網絡的問題
通過一波三折,老是上線成功,結果以下
5)發佈時錯誤出現:
在上線的過程當中,出現以下的錯誤
咱們能夠發現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,有點難受,這就受到教訓,不是親眼看一下不要相信。
4、總結
舊版本切換新版本,搞到我大半天,注意點細節就不用搞的那麼久了,walle2.0,界面感受還不錯,不過添加一些不受版本控制的代碼,可能要麻煩點。。。。