局域網內利用gitlab,jenkins自動生成gitbook並發布(nginx)


安裝了GitBook,內網使用,沒法用上gitbook的網頁。

用gitbook serve只能展示一本書,而且也不利於長期維護。

於是使用gitlab,jenkins,和nginx配合gitbook使用。

基本的流程是這樣的,每本書作為項目托管到gitlab上,每次提交,gitlab會觸發jenkins,jenkins會把倉庫的內容拉下來,gitbook build 並復制到Web server(Nginx)的目錄下,並加上可讀權限,然后局域網內的人就都可以直接訪問了。

 

下面記錄過程

首先機器上已經安裝好了gitlab,jenkins,gitbook和nginx。

然后要給jinkins執行shell程序的sudo權限。

編輯 /etc/sudoers 文件

加上

jenkins ALL=(ALL) NOPASSWD:ALL

這樣jenkins就有sudo權限了而且免輸密碼

然后jenkins要安裝一些插件,Git client plugin Git plugin  Gitlab Hook Plugin (也許只要最后一個?我是一次性三個都安裝了)

假設我的機子的IP是192.168.1.2,gitlab在端口8081,jenkins在端口8082,nginx在80端口並且開放了文件夾/www/

接下來舉個例子

/**********************在gitlab上新建項目並配置web hook**********************************/

在gitlab上新建一個項目

比如叫做 Books_測試,對應的url為 

http://192.168.1.2:8081/zhuangqiubin/Books_ceshi

在項目頁面左下角進入Settings

左邊面板選擇Web Hooks

填入url 

http://192.168.1.2:8082/gitlab/build_now

 

點擊左下按鈕 Add Web Hook

然后在本機新建 README.md  和 SUMMARY.md 兩個文件,提交到這個項目中去

 

/********************配置jenkins****************************************************/

登陸jenkins  http://192.168.1.2:8082

左上角新建   填入名稱 比如叫做  GitBook_測試

選擇 構建一個自由風格的軟件項目 

點擊OK 進入詳細設置

源碼管理 選擇git

Repository URL 填入 項目url 比如 

http://192.168.1.2:8081/zhuangqiubin/Books_ceshi.git

Credentials 處點擊ADD  填入你的gitlab用戶名和密碼 

確定添加后 把none換成你剛剛添加的用戶名密碼

最后 Add Repository 確定

往下 構建 增加構建步驟 Execute shells

加入以下代碼 (把其中的 測試 替換成你想要的書名)

gitbook build
sudo rm -rf  /www/books/測試
sudo cp -a    _book  /www/books/測試
sudo chmod  777  /www/books/測試

確定后 在本機clone  編輯一下 再push回去 看是否能觸發構建  

然后就可以在本機編輯,提交,然后到對應頁面 比如 

http://192.168.1.2/books/測試/

查看效果了

這樣以后就可以用gitlab來管理gitbook了,只要提交就自動build並搬運到www文件夾供其他人訪問

 

本文鏈接:http://www.cnblogs.com/zqb-all/p/5371255.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM