傳統(tǒng)的線上部署方式是通過ftp手動部署項目,一個項目還好,當(dāng)項目多或者項目不停的版本迭代的時候,這種方式就顯的很繁瑣,于是需要尋求一種更加智能的方式來部署線上項目,很多公司內(nèi)部都是自己開發(fā),原理都大同小異,通過腳本+shell命令方式部署,本文主要介紹利用開源的系統(tǒng)walle進(jìn)行服務(wù)器搭建的過程。
官網(wǎng)文檔:https://www.walle-web.io/docs/
下面介紹基于centos 7+lamp進(jìn)行環(huán)境搭建的過程,lamp環(huán)境安裝請自行百度,建議通過源碼安裝,阿里云有提供一鍵安裝腳本,不過軟件不是最新的。
一、安裝walle
具體安裝方法請按照官方文檔。我是安裝在內(nèi)網(wǎng)的centos 7環(huán)境;
二、配置ssh-key
該步驟其實是建立免密碼登錄遠(yuǎn)程服務(wù)器,walle一般是通過php-fpm的用戶進(jìn)行操作,通常為www用戶,所以需要在www用戶下建立服務(wù)器ssh-key。
假設(shè)我內(nèi)網(wǎng)服務(wù)器為a,遠(yuǎn)程服務(wù)器為b。
在內(nèi)網(wǎng)服務(wù)器a需要進(jìn)行的命令如下:
su www
ssh-keygen -t rsa
然后一路回車
如果需要建立root用戶ssh免密碼登錄,需求進(jìn)行如下命令:
ssh-copy-id -i ./id_rsa.pub root@【b服務(wù)器的IP】
然后查看生成的公鑰內(nèi)容:
cat id_rsa.pub
復(fù)制顯示的內(nèi)容,進(jìn)行下一步,
在外網(wǎng)服務(wù)器b需要進(jìn)行的命令如下:
su www
cd ~/.ssh #沒有目錄則新建
vi authorized_keys
填寫復(fù)制的公鑰內(nèi)容到文件里面,保存退出即可
驗證能否登錄
在a服務(wù)器執(zhí)行命令:
ssh www@【b服務(wù)器的IP】
正常情況會出現(xiàn)登錄成功提示
三、新建項目
搭建好walle后登錄系統(tǒng),登錄賬號密碼為admin,然后新建系統(tǒng),按照官方文檔新建即可,此處需要注意的是地址可以是http協(xié)議和svn協(xié)議

添加成功后點(diǎn)擊檢測,提示配置成功,如果提示錯誤,通常都是ssh-key配置不成功。
三、總結(jié)
1、如果ssh 遠(yuǎn)程登錄服務(wù)器提示需要密碼,則表示配置沒有成功,通常是authorized_keys文件名有空格或者其里面的內(nèi)容有空格,刪除重新建即可。
2、walle可以同時發(fā)布多個域名,只需要在服務(wù)器列表那填寫即可。
3、如果SVN沒有tag或者branch,不要選擇這兩項,默認(rèn)是選中的。