记录一次Gitlab安装并与Gitbook集成的经历

老板今天又来提需求啦d=====( ̄▽ ̄*)b

需要把公司的一些技术文档放到一个平台上,员工阅读,同时文档要有较好的维护性,成本尽可能低。

所以,就有今天博客的内容了!

想要解锁更多新姿势?请访问我的个人博客https://blog.tengshe789.tech/(😘

安装gitlab

1. 安装并配置必要的依赖关系

在CentOS 7(和RedHat / Oracle / Scientific Linux 7)上,以下命令还将在系统防火墙中打开HTTP和SSH访问。

1
2
3
4
5
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

接下来,安装Postfix以发送通知电子邮件。如果您想使用其他解决方案发送电子邮件,请在安装GitLab后跳过此步骤并[配置外部SMTP服务器](https://docs.gitlab.com/omnibus/settings/smtp.html)。

1
2
3
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

在Postfix安装期间,可能会出现配置屏幕。选择“Internet Site”并按Enter键。使用服务器的外部DNS作为“邮件名称”,然后按Enter键。如果出现其他屏幕,请继续按Enter键接受默认值。

2. 添加Gitlab包存储库并安装包

Add the GitLab package repository.

1
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

接下来,安装GitLab包。将http:// gitlab.example.com更改为您要访问GitLab实例的URL。安装将自动配置并启动该URL的GitLab。 HTTPS在安装后需要其他配置。

1
sudo EXTERNAL_URL="http://192.168.190.132:33333" yum install -y gitlab-ee

3. 登陆并验证

在您第一次访问时,您将被重定向到密码重置屏幕。提供初始管理员帐户的密码,您将被重定向回登录屏幕。使用默认帐户的用户名root登录。

See our documentation for detailed instructions on installing and configuration.

与gitbook集成

安装nodeJs

只能安装第三方仓库中存在的版本,一般落后 node 最新版本

  1. 安装EPEL 仓库
    yum install epel-release
  2. 安装 nodejs
    yum install nodejs
  3. 安装 npm yum install npm

安装gitbook

GitBook 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书。GitBook支持输出以下几种文档格式

  • 静态站点:GitBook默认输出该种格式
  • PDF:需要安装gitbook-pdf依赖
  • eBook:需要安装ebook-convert
1
2
npm install gitbook -g
npm install -g gitbook-cli

QA

  1. 出现npm ERR! Error: connect ECONNREFUSED 104.16.24.35:443问题
    使用如下语句关闭代理解决问题:
    npm config set proxy null

安装GitLab Ci Runner

  1. 添加repository
    curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash

  2. 安装包
    yum install gitlab-runner

执行上述命令之后,之后的流程如下:

第一处红线:输入部署完成的gitlab地址比如http://111.111.111.111:8080/

第二处红线: 登陆gitlab,先点击右上方Admin Settings,再找到左侧列表的中的overview一栏找到runner选项,找到并在shell中输入token.

剩下的过程随便写即可

最后看到Runner registered successfully表示注册成功。

最后可以登录gitlab进行验证,有如图所有列表说明注册成功

配置持续集成

https://docs.gitlab.com/ce/ci/quick_start/README.html#creating-a-gitlab-ciyml-file

在仓库下,创建.gitlab-ci.yml,写入以下配置:

1
2
3
4
5
6
7
8
9
stages:
- build
GenerateHTML:
stage: build
script:
- p=`pwd`
- echo $p
- gitbook build
- gitbook serve

打开gitlab里面的pineline,查看log。

QA

  1. 出现This job is in pending state and is waiting to be picked by a runner错误

解决:没找到优雅的方式。粗暴点,可以在服务器端重启runner,使用命令gitlab-ci-multi-runner restart

本地使用

  1. 将仓库clone下来,gitbook init bookname 創建書名爲bookname的書
  2. 写书,必要时使用gitbook serve 预览书。
  3. 创建.gitlab-ci.yml,写入配置。然后使用git命令上传到书库。

QA

  1. CI/CD的log界面出现无法删除图书错误

解决: CI/CD图形界面,右侧,点击cancel即可。

  1. 出现RangeError: Maximum call stack size exceeded错误

解决: 文章内容过长,导致js堆栈溢出。

参考

gitbook配置实例https://gitlab.com/pages/gitbook#building-locally

其实类似gitbook的软件还有很多,就譬如docsify,大家可以多查阅相关资料使用。

全片结束,觉得我写的不错?想要了解更多精彩新姿势?赶快打开我的👉个人博客 👈吧!

谢谢你那么可爱,还一直关注着我~❤😝

-------------本稿が終わる感谢您的阅读-------------