千峰逆战技术分享第十二天使用gitbook搭建简单粗暴的wiki系统

市面上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 [email protected] < < 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就可以直接访问静态页面了。


转载http://www.21yunwei.com/archives/5110

你可能感兴趣的:(千峰逆战技术分享第十二天使用gitbook搭建简单粗暴的wiki系统)