自建私有gitlib指南

Scroll Down

安装基础支撑

  • 安装ssh,

sudo yum install -y curl policycoreutils-pythonopenssh-server

  • 将SSH服务设置成开机自启动:

sudo systemctl enable sshd

  • 启动SSH服务,安装命令:

sudo systemctl start sshd

  • 安装防火墙

sudo yum install firewalld systemd -y

  • 开启防火墙

sudo service firewalld start

  • 添加http服务到防火墙

sudo firewall-cmd --permanent --add-service=http

  • 重启防火墙

sudo systemctl reload firewalld

  • 安装Postfix以发送通知邮件

sudo yum install postfix

  • 将postfix服务设置成开机自启动,安装命令:

sudo systemctl enable postfix

  • 启动postfix

sudo systemctl start postfix

安装GITLIB-CE

  • 配置yum源

sudo vim /etc/yum.repos.d/gitlab-ce.repo

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1```

  • 更新本地yum缓存

sudo yum makecache

  • 安装GITLIB-CE

yum install gitlab-ce #自动安装最新版本

  • 修改配置

vim /etc/gitlab/gitlab.rb

external_url "http://x.x.x.x:8989" ```

  • 配置gitlib生效

gitlab-ctl reconfigure
gitlab-ctl restart```

  • 防火墙开发8989端口

#查看已开放的端口
firewall-cmd --list-all
#添加8989端口
firewall-cmd --zone=public --add-port=8989/tcp --permanent
#重启防火墙
firewall-cmd --reload```

  • 阿里云安全组中开放8989端口

访问Gitlib

浏览器打开 http://x.x.x.x:8989.首次打开设置root用户的密码,设置完毕之后再次登陆即可。

安装Gitlib问题

  • 机器配置问题。穷逼VIP。1C2G做完上面的操作,访问基本是502。害毕竟gitlib官方推介的是8G的。

开启swap

开启swap

  • 添加Swap分区

dd if=/dev/zero of=/data/swap bs=1024 count=4194304

  • 对交换文件格式化并转换为swap分区

mkswap /data/swap

  • 挂载并激活分区

swapon /data/swap

  • 修改 fstab 配置,设置开机自动挂载该分区

echo "/data/swap swap swap defaults 0 0" >> /etc/fstab

开启之后,使用free -m 就可以看到对应的swap了。然后重启Gitlib。让子弹飞一会儿,然后就可以访问了。

安装GITLIB-RUNNER。启用CI/CD

安装GITLIB-RUNNER

  • 安装docker

docker curl -SSL https://get.docker.com/ | sh

  • 下载gitlib runner

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

  • yum 安装

yum -y install gitlab-ci-multi-runner -y

  • 让gitlib-runner 用户关联docker组,用于执行docker命令

usermod -aG docker gitlab-runner
service docker restart
gitlab-ci-multi-runner restart```

注册runner 到gitlab服务器

  • 执行注册命令

gitlab-ci-multi-runner register

获取对应项目的runner处的地址和token,按照顺序分别填写,runner 和tag 可以随便填写,但要尽量写的有意义。然后执行方式选择我们之前安装的docker,base镜像我这边选择maven:3-jdk-8-alpine

  • 检查web界面内的runner的状态是否是绿色小圆点,是就证明已经注册成功。

  • 在项目内编写.gitlab-ci.yml

  • 代码push之后就会触发对应的.gitlab-ci.yml内定义的阶段去执行自动化打包构建.

问题排错
FATAL: Near line 101 (last key parsed 'runners.docker'): Expected a top-level item to end with a new line, comment or EOF, but got 's' instead.

问题是这样的,我修改了gitlib-runner的配置文件/etc/gitlab-runner/config.toml 我增加了其中一个sonar的volume(在docker中的意思表示将宿主机上的目录挂在到docker容器中),修改如下,然后由于我的粗心没有控制101行的内容的格式,导致了我的runner报废。切记注意配置文件的格式,不说了,我卸载重新安装了N次gitlab-ci-multi-runner。妈的智障。

[[runners]]
 92   name = "sonar"
 93   url = "http://ip:8989/"
 94   token = "NiBEQVGdaCPKbrMPVPUY"
 95   executor = "docker"
 96   [runners.docker]
 97     tls_verify = false
 98     image = "sonarsource/sonar-scanner-cli:latest"
 99     privileged = false
100     disable_cache = false
101     volumes = ["/cache", "/usr/scanner:/usr/src", "/usr/app:/home/scanner-cl    i"]   shm_size = 0
102   [runners.cache]