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

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

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

因而使用gitlab,jenkins,和nginx配合gitbook使用。git

基本的流程是這樣的,每本書做爲項目託管到gitlab上,每次提交,gitlab會觸發jenkins,jenkins會把倉庫的內容拉下來,gitbook build 並複製到Web server(Nginx)的目錄下,並加上可讀權限,而後局域網內的人就均可以直接訪問了。web

 

下面記錄過程shell

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

而後要給jinkins執行shell程序的sudo權限。測試

編輯 /etc/sudoers 文件ui

加上url

jenkins ALL=(ALL) NOPASSWD:ALL

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

而後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

相關文章
相關標籤/搜索