市面上wiki系统众多,用过收费的,也配置过复杂的。用哪种wiki,主要还是看需求吧。
这里使用一个简单粗暴的wiki系统,使用场景为公司运维内部专用wiki系统,仅仅一个展示页面。这里简单记录下,以便同行使用。
逻辑:
本地编辑md文档后,通过git push到gitlab,gitlab触发webhooks后,由jenkins自动拉取后rsync推送到线上web机器,远程调用sh脚本进行一次init build即可。
1, web部署gitbook
安装nodejs,这里到官网https://nodejs.org/en/download/直接下载nodejs二进制安装包解压并设置环境变量即可。
mv node-v10.16.0-linux-x64 /bin/ mv /bin/node-v10.16.0-linux-x64 /bin/node vim /etc/profile export PATH=/usr/bin/node/bin:$PATH source /etc/profile
安装gitbook:
npm install gitbook-cli -g
2,jenkins部署脚本:
rsync -avz $WORKSPACE/ 10.1.12.47:/data/wwwroot/wiki --exclude=".git" --exclude="metadata" --exclude="mainlib.db" ssh -Tq root@10.1.12.47 < < EOF /bin/bash /home/devops/build_gitbook.sh EOF
3,gitbook 机器上的shell脚本 build_gitbook.sh:
#!/bin/bash cd /data/wwwroot/wiki && /usr/bin/node/bin/gitbook init
4,gitbook设置虚拟虚拟终端:
screen -S gitbook gitbook serve
这个操作以后,gitbook会监听4000端口,便于后边设置反向代理。
5,配置nginx
nginx配置如下:
nginx配置: upstream gitbook { server 10.1.12.47:4000; } 独立conf配置: server { listen 80; server_name wiki.21yunwei.com; access_log /logs/nginx/wiki/wiki_access.log main; error_log /logs/nginx/wiki/wiki_error.log; root /data/wwwroot/wiki/; location / { proxy_pass http://gitbook; } location = /nginx-status { stub_status on; access_log off;
问题解决。
本地编辑md文件后直接push到gitlab,触发webhook后由jenkins执行后变的推送以及远程执行sh进行init,这样web就可以直接访问静态页面了。
转载请注明:21运维 » 使用gitbook搭建简单粗暴的wiki系统