目的
搭建公司內(nèi)部文檔管理平臺(tái),修改完畢后推送至遠(yuǎn)端自動(dòng)刷新
依賴環(huán)境
Docsify、GitLab、Jenkins
版本無(wú)要求
運(yùn)行環(huán)境
CentOS Linux release 7.3.1611
依賴環(huán)境
如本地已安裝需要的依賴環(huán)境,可直接略過(guò)該部分。
GitLab
介紹
GitLab是一個(gè)開(kāi)源的Git倉(cāng)庫(kù)管理工具。
使用官網(wǎng)提供的安裝方式,可以在公司內(nèi)網(wǎng)上搭建私人的Git平臺(tái)。
初始化
打開(kāi)系統(tǒng)防火墻 HTTP 和 SSH 訪問(wèn)權(quán)限
sudo yum install -y curl policycoreutils-python openssh-server cronie
sudo lokkit -s http -s ssh
安裝郵件代理服務(wù)
sudo yum install postfix
sudo service postfix start
sudo chkconfig postfix on
添加GitLab倉(cāng)庫(kù)并安裝
curl -sS http://packages.gitlab.com.cn/install/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
啟動(dòng)服務(wù)
sudo gitlab-ctl reconfigure
通過(guò)域名訪問(wèn)
第一次訪問(wèn) GitLab,需要輸入初始化管理員賬號(hào)的密碼,系統(tǒng)默認(rèn)的管理員賬號(hào)為 root。
創(chuàng)建項(xiàng)目
新建Project


生成本機(jī)秘鑰文件

添加SSH Key

Clone到本地

git clone http://10.10.13.28/konghaorui/my-docs.git
Docsify
介紹
一個(gè)神奇的文檔網(wǎng)站生成工具
樣式預(yù)覽


初始化
安裝腳手架工具(本機(jī)、服務(wù)器都需安裝)
npm i docsify-cli -g
生成項(xiàng)目
進(jìn)入Clone下來(lái)的項(xiàng)目目錄,初始化文檔工程
cd my-docs
docsify init ./docs
本地預(yù)覽
docsify serve docs
Jenkins
介紹
Jenkins是一個(gè)開(kāi)源的、提供友好操作界面的持續(xù)集成工具
主要用于持續(xù)、自動(dòng)構(gòu)建項(xiàng)目、測(cè)試軟件工程、監(jiān)控外部任務(wù)的運(yùn)行
初始化
因?yàn)榉?wù)器上已有tomcat服務(wù)在運(yùn)行,所以此處使用直接掛載Jenkins到tomcat服務(wù)下的方式,相對(duì)比較簡(jiǎn)潔。如沒(méi)有tomcat服務(wù)可以選擇其他方式進(jìn)行搭建。
下載war包
進(jìn)入下載頁(yè)面,選擇對(duì)應(yīng)版本安裝包

放置war包
將下載好的war包放置到tomcat安裝目錄,webapps文件夾下

啟動(dòng)tomcat
cd bin
sh startup.sh
啟動(dòng)完畢后,訪問(wèn) http://localhost:8080/jenkins 即可看到Jenkins頁(yè)面
首次啟動(dòng)需要輸入初始密碼,密碼信息在標(biāo)記的文件位置查看

注冊(cè)完新用戶再次進(jìn)入就可以看到Jenkins首頁(yè)了

自動(dòng)部署
在上面基本的環(huán)境都已經(jīng)搭建成功,現(xiàn)在做的就是實(shí)現(xiàn)文檔自動(dòng)部署功能,使git項(xiàng)目能夠和docsify相關(guān)聯(lián)。
配置Jenkins
打開(kāi)jenkins頁(yè)面
添加插件:系統(tǒng)管理 - 插件管理
需要添加的插件:Post Build Task、Gitlab Hook、Gitlab
安裝后重啟Jenkins
創(chuàng)建任務(wù)

添加源碼管理
填寫(xiě)git倉(cāng)庫(kù)地址,添加用戶,選擇默認(rèn)獲取分支

設(shè)置構(gòu)建觸發(fā)器

設(shè)置構(gòu)建后操作,自動(dòng)啟動(dòng)docsify服務(wù)


設(shè)置自動(dòng)啟動(dòng)docsify腳本

git pull origin master
#判斷進(jìn)程是否存在,如果不存在就啟動(dòng)它
PIDS=`ps -ef |grep docsify |grep -v grep | awk '{print $2}'`
if [ "$PIDS" != "" ]; then
echo "docsify is runing!"
else
#運(yùn)行進(jìn)程
echo "starting docsify!"
docsify serve docs --port 4921 &
fi
保存配置
配置GitLab
設(shè)置webhook,當(dāng)有提交時(shí)自動(dòng)觸發(fā)Jenkins任務(wù)


可點(diǎn)擊test按鈕模擬推送事件

如出現(xiàn)200提示,說(shuō)明任務(wù)觸發(fā)成功

查看Jenkins任務(wù)是否執(zhí)行

測(cè)試
修改任意文件內(nèi)容后推送至遠(yuǎn)端,訪問(wèn) http://服務(wù)器地址:4921 查看文檔是否改變