安装基础支撑
- 安装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]