市面上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就可以直接访问静态页面了。
网友评论