介绍

本文主要是在 gitlab 上集成 gitbook 实现提交时 gitbook 自动刷新部署 ,以及在 linux 环境上搭建 gitlab gitbook,集成 GitLab CI 实现一个企业级或个人的 Wiki 系统

环境准备

1.一台 linux 服务器
2.安装 node 以及 npm 环境 (这里注意 node 环境不要过高 不然在安装 gitbook 时会有报错 推荐:v12.16.3)

linux 安装 Node 教程

在 root 目录下创建 node 文件夹

mkdir  node
    cd node

下载 解压

wget https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.xz
tar xf node-v12.16.3-linux-x64.tar.xz

可以查看当前目录下的文件,执行:ls (命令)

解压成功后可以选择删除压缩包:

rm -rf node-v14.17.4-linux-x64.tar.xz

其中:-f 会提醒是否删除 ;-rf 会强制删除,不会提醒。(使用 rf,因为有些人不知道如何操作等待回车的对话线)

创建目录

mkdir /usr/local/lib/node

如果目录已经存在,则无需创建,也可以根据自己的喜好设置目录名称

移动目录并重命名

mv node-v12.16.3-linux-x64 /usr/local/lib/node/nodejs

设置环境变量(注意:这一步需要管理员权限或者对该文件的写入权限。)
执行:

sudo vim /etc/profile

输入 i 即可对文件进行编辑。
在文件底部添加环境变量:

export NODEJS_HOME=/usr/local/lib/node/nodejs
export PATH=$NODEJS_HOME/bin:$PATH

执行命令(下方清单命令为保存退出):

点击esc
输入冒号:
输入wq
点击回车
保存并退出。

刷新修改

source /etc/profile

安装完成,查看版本号
node版本号:

node -v

npm版本号:

npm -v

安装Git

通过下列命令,在机器上安装git:

## 通过下列命令安装git
yum install git
## 查看当前git版本
git --version

如果你linux环境没有yum 命令的话 看下面步骤安装 ,如果有yum命令则可忽略
下载yum安装包并解压

wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz
tar xvf yum-3.2.28.tar.gz

进入yum-3.2.28文件夹中进行安装,执行安装指令

cd yum-3.2.28
sudo apt install yum

更新到新版本

yum check-update
yum update
yum clean all

安装GitLab

1.下载gitlab的rpm包
地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-9.5.9-ce.0.el7.x86_64.rpm
2.把下载的包放到linux环境中
3.执行安装

## 安装rpm包
rpm -ivh gitlab-ce-9.5.9-ce.0.el7.x86_64.rpm

4.修改访问URL(这一步是修改你访问gitlab的地址 例:http://192.168.0.1:20001)

vim /etc/gitlab/gitlab.rb
## 修改以下内容并保存
external_url "http://192.168.0.1:20001"

5.重装配置

## 依次执行下面命令 
gitlab-ctl reconfigure
gitlab-ctl restart

6.安装gitlab之后的一些错误问题解决
当我们执行完上面代码之后 在游览器输入 网站(例如::http://192.168.0.1:20001) 应该就能进入gitlab,
但是还有一种情况是 端口没开 所以导致访问不到 (例如我这个是20001 端口 但是我服务器没打开这个端口所以就访问不到)
解决方法如下:

开端口命令:firewall-cmd --zone=public --add-port=20001/tcp --permanent

安装GitBook

通过下列命令安装即可:

npm install gitbook-cli -g

安装GitLab Runner

下载GitLab Runner

通过 uname --m 命令查看 Linux 系统的位数,然后下载对应的安装包

# x86-64
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
# x86
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386
# arm
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm

文件放置

文件已经放置于 /usr/local/bin/gitlab-runner,需要配置相应权限

chmod +x /usr/local/bin/gitlab-runner

安装GitLab Runner

## 安装
gitlab-runner install --user=root --working-directory=/software/gitlab-runner
## 启动
gitlab-runner start

打通GitLab与GitBook

在gitlab中创建一个项目

如下图所示:

github 本地gitlab gitlab gitbook_github 本地gitlab

注册GitLab Runner

## 注册
gitlab-runner register
然后依次输入以下参数:
## 1. GitLab的url,参考下图 
## 2. Token,参考下图
## 3. 描述,随便写一个(例如:my-runner)
## 4. 填写Gitlab Runner的tag (注意这里的tag后面会用到 例如:my-tag,another-tag)
## 5. 选择Runner的执行器,意思是执行方式,这里用shell即可

github 本地gitlab gitlab gitbook_gitlab_02

配置完成后,可以在GitLab看到Runner已经注册上来了,如下所示:

github 本地gitlab gitlab gitbook_linux_03

本地gitbook项目配置CI

在项目中新增.gitlab-ci.yml文件,内容如下:

stages:
  - build
xx-wiki:
    #下面这里是项目的tag   根据上面注册GitLab Runner第4步设置的tags填写
  tags:   
    - my-runner
  stage: build
  script:
    - p=`pwd`
    - echo $p
    - gitbook install
    - gitbook build
    - setsid nohup sh startup.sh > nohup.out 2>&1 &

在项目中新增startup.sh文件,内容如下:

#!/bin/bash
for i in `ps -ef | grep gitbook | grep serve`; do kill -9 $i ; done;
gitbook serve

把本地的gitbook项目提交到GitLab后,通过Pipelines菜单查看任务执行情况:

github 本地gitlab gitlab gitbook_github 本地gitlab_04

校验

修改gitbook内容,然后推送到GitLab,可以看到GitLab上的任务被执行,如上图所示。注意若显示为padiing则可能项目配置有问题 或者tags不对

最后 访问 http://IP:4000,可以看到对应的项目被更新,证明WiKi搭建完成,并能实时更新

github 本地gitlab gitlab gitbook_git_05