超级详细GitBook和GitLab集成步骤【linux环境】

news2024/11/25 22:29:24

介绍

本文主要是在 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中创建一个项目

如下图所示:

在这里插入图片描述

注册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即可

在这里插入图片描述

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

在这里插入图片描述

本地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菜单查看任务执行情况:
在这里插入图片描述

校验

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/336529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CS反制之批量伪装上线

分析原理: 我们利用Wireshark抓包工具分析一下Cobalt Strike的上线过程是怎么样的 点击木马,主机上线并抓包 查看数据包 可以看到cookie是一串非对称RSA加密类型,需要一个私钥Private Key才能对其进行解密 我们对Cookie解密看看&#xff…

Django框架之系列二

为什么要搭建虚拟环境? 在开发过程中, 当需要使用python的某些工具包/框架时需要联网安装 比如联网安装Django框架django的1.11.11版本 sudo pip install django1.11.11提示:使用如上命令, 会将Django安装到/usr/local/lib/python2.7/dist-packages路径下问题&…

常见的10种网络安全攻击类型

1. DoS 和 DDoS 攻击DoS 是 Denial of Service 的简称,即拒绝服务。单一的 DoS 攻击一般是采用一对一方式的,通过制造并发送大流量无用数据,造成通往被攻击主机的网络拥塞,耗尽其服务资源,致使被攻击主机无法正常和外界…

57 长短期记忆网络(LSTM)【动手学深度学习v2】

57 长短期记忆网络(LSTM)【动手学深度学习v2】 深度学习学习笔记 学习视频:https://www.bilibili.com/video/BV1JU4y1H7PC/?spm_id_fromautoNext&vd_source75dce036dc8244310435eaf03de4e330 长短期记忆网络(LSTM&#xff09…

Element UI框架学习篇(四)

Element UI框架学习篇(四) 1 准备工作 1.0 创建Emp表并插入相应数据的sql语句 /*MySQL数据库*/SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ---------------------------- -- Table structure for emp -- ---------------------------- DROP TABLE IF EXISTS emp; CRE…

为什么需要内存对齐

内存对齐 为什么需要内存对齐? 平台原因:不是所有的硬件平台都能访问任意内存地址上的任意数据,某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。为了同一个程序可以在多平台运行,需要内存对齐…

阻塞式队列-生产者消费者模型

1.阻塞队列是什么 阻塞队列是一种特殊的队列. 也遵守 "先进先出" 的原则. 阻塞队列能是一种线程安全的数据结构, 并且具有以下特性: 当队列满的时候, 继续入队列就会阻塞, 直到有其他线程从队列中取走元素.当队列空的时候, 继续出队列也会阻塞, 直到有其他线程往队…

HLNet代码debug记录

昨天跑HLNet的代码,配环境的时候又双叒叕遇到了一些问题,记录一下: 1.error: identifier “AT_CHECK“ is undefined 出现在python setup.py build develop的时候 参照https://blog.csdn.net/sinat_29957455/article/details/113334944 根据报…

如何在腾讯云服务器上安装Jupyter Notebook示例?

Jupyter简介及服务器端安装 首先,服务器端安装Jupyter。 sudo pip3 install jupyterlab: 启动Jupyter服务 # 设置jupyter web的密码jupyter-notebook password# 创建jupyter工作目录mkdir ~/jupyter_workspace# 启动jupyter (两次ctrlc停止服务)jup…

图解LeetCode——剑指 Offer 32 - III. 从上到下打印二叉树 III

一、题目 请实现一个函数按照之字形顺序打印二叉树,即:第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 二、示例 2.1> 示例1 提示: …

【软件测试】资深测试工程师说:你真的能做好bug分析吗?

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 bug报告&#xff0c…

Revive:从间谍软件进化成银行木马

2022 年 6 月,Cleafy 研究人员发现了一个新的安卓银行木马 Revive。之所以选择 Revive 这个名称,是因为恶意软件为防止停止工作启用的一项功能名为 revive。 Revive 属于持续潜伏的那一类恶意软件,因为它是为特定目标开发和定制的。这种类型…

Python 四种推导式,包含实例演示

嗨害大家好鸭!我是小熊猫~ 这次继续来给大家带来python基础内容~ 源码资料电子书:点击此处跳转文末名片获取 Python 推导式 Python 推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。 Python 支持各种数据结构的推…

关于进行vue-cli过程中的解决错误的问题

好久没发文章了,直到今天终于开始更新了,最近想进军全端,准备学习下vue,但是这东西真的太难了,我用了一天的时间来解决在配置中遇到的问题!主要问题:cnpm文件夹和vue-cli文件夹的位置不对并且vu…

秒杀项目之网关服务限流熔断降级分布式事务

目录一、网关服务限流熔断降级二、Seata--分布式事务2.1 分布式事务基础2.1.1 事务2.1.2 本地事务2.1.3 分布式事务2.1.4 分布式事务场景2.2 分布式事务解决方案2.2.1 全局事务可靠消息服务2.2.2 最大努力通知2.2.3 TCC事事务三、Seata介绍四、 Seata实现分布式事务控制4.1 案例…

【Android】Binder的理解

1.Binder是什么? 对于android而言,是跨进程传输的通道,是封装好的java类,可以直接继承和使用。 从组成、模型来讲,我认为是连接Server层、Client层、ServerManager层的纽带,也是驱动。 2.Binder的基础概…

RMI攻击Registry的两种方式

概述 RMI(Remote Method Invocation) :远程方法调用 它使客户机上运行的程序可以通过网络实现调用远程服务器上的对象,要实现RMI,客户端和服务端需要共享同一个接口。 基础 Client 和 Regisry 基于 Stub 和 Skeleton 进行通信&#xff0c…

ContextCapture Master 倾斜摄影测量实景三维建模

ContextCapture实景建模大师是一套无需人工干预,通过影像自动生成高分辨率的三维模型的软件解决方案。它集合了全球最先进数字影像处理、计算机虚拟现实以及计算机几何图形算法,在易用性、数据兼容性、运算性能、友好的人机交互及自由的硬件配置兼容性等…

花1分钟配置远程DEBUG,开发效率翻倍,妹子直呼绝绝子

当把一个工程部署到远程服务器后有可能出现意想不到错误,日志打印过多或者过少都影响问题排查的效率,这个时候可以通过远程调试的方式快速定位bug,提升工作效率。本文主要讲解如何使用Idea开发工具进行远程调试,希望对你有帮助。 …

微信小程序授权登录流程

自我介绍我是IT果果日记,微信公众号请搜索 IT果果日记一个普通的技术宅,定期分享技术文章,欢迎点赞、关注和转发,请多关照。首先,我们要了解什么是微信小程序登录?它的作用是什么?用户登录微信小…