GitLab简介与安装
GitLab简介
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。 企业用于搭建自己的私有代码托管服务,相对github,gitee 更安全
GitLab提供了持续集成(CI/CD)系统来管理部署项目
GitLab是整个DevOps生命周期的第一个应用程序
官方网站:https://about.gitlab.com/
使用官方gitlab
安装gitlab服务
- 创建部署GitLab的实例,要求如下 :
- 部署GitLab的实例要求至少使用2个vCPU和4GiB的内存
- 已添加如下表所示的安全组规则。
方向 协议/应用 端口/范围 源地址 入方向 HTTP(80) 80 0.0.0.0/0 - 已经安装centos7系统
- 安装方式:
- 手动部署GitLab环境
- 镜像部署GitLab环境
- 宝塔安装GitLab环境
手动部署GitLab环境
- 安装并配置依赖项,同时打开HTTP访问和SSH访问
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
- 安装GitLab软件包
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
- 初始化GitLab配置
sudo gitlab-ctl reconfigure
- 启动 gitlab 服务
gitlab-ctl start
- 停止 gitlab 服务
gitlab-ctl stop
宝塔安装GitLab环境
- centos安装宝塔脚本
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
- 启动宝塔
- 安装gitlab
- 解决 nginx 无法启用 冲突问题
为了防止nginx冲突, 宝塔把gitlab的nginx启动文件名改成了gitlab-web, 但配置文件里面却没改造成的, 自己改一下就行了
- 修改启动脚本
$ vi /opt/gitlab/sv/nginx/run
exec chpst -P /opt/gitlab/embedded/sbin/nginx -p /var/opt/gitlab/nginx
改为
exec chpst -P /opt/gitlab/embedded/sbin/gitlab-web -p /var/opt/gitlab/nginx
- 重启gitlab
gitlab-ctl start
- 修改启动脚本
- 修改访问地址
如果未使用云服务器,需将外网地址修改为内网访问
- 修改配置文件 gitlab.yml
$vi /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
host: localhost
port: 80
https: false
修改host值为你想使用的外网域名或服务器IP地址即可,保存退出。
- 重启gitlab
gitlab-ctl restart
注意这里的命令是restart不是 reconfigure(根据配置文件/etc/gitlab/gitlab.rb 重新生成配置) ,否则还会恢复原来的配置。
- 修改配置文件 gitlab.yml
- 访问配置gitlab 中文支持
GitRunner
GitLab Runner 介绍
GitLab Runner是一个开源项目,用于运行您的作业并将结果发送回GitLab。它与GitLab CI一起使用,GitLab CI是GitLab随附的开源持续集成服务,用于协调作业。
工作原理
从上面图片中可以看到,具体的流程是:
- Runner向/api/v4/runners发送POST请求,请求里带有注册Token
- 注册成功后返回runner_token
- Runner通过循环向/api/v4/rquest发送POST请求,请求里带上runner_token
- 认证通过后接口返回带有任务信息的payload和任务相关的job_token
- 然后将任务信息发送给执行器,执行器使用job_token来
- 克隆所需的代码
- 下载配置或组件
- 执行器执行完成后,返回任务输出和任务状态信息
- Runner向GitLab返回任务输出、任务状态以及job_token
安装GitRunner
1. docker安装GitLab Runner
官网地址:https://docs.gitlab.com/runner/install/
$ mkdir -p /data/gitlab-runner/config
$ docker run -itd --restart=always --name gitlab-runner \
-v /data/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest
$ docker exec -it gitlab-runner bash
root@24dc60abee0b:/# gitlab-runner -v
Version: 13.8.0
Git revision: 775dd39d
Git branch: 13-8-stable
GO version: go1.13.8
Built: 2021-01-20T13:32:47+0000
OS/Arch: linux/amd64
1.下载rpm包
Index of /gitlab-runner/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
选择与gitlab相近的版本
gitlab-runner-13.8.0-1.x86_64.rpm:gitlab-runner-13.8.0-1.x86_64.rar – 蓝奏云
2.安装rpm包
rpm -ivh gitlab-runner-13.8.0-1.x86_64.rpm
3.服务相关
systemctl enable gitlab-runner –开机自启
systemctl status gitlab-runner –查看状态
systemctl start gitlab-runner –启动
4.runner注册
gitlab-runner register
相关注册解释:
- Enter the GitLab instance URL (for example, https://gitlab.com/): ===>填gitlab的地址
- Enter the registration token: ===> 填gitlab上注册runner时提示的token
- Enter a description for the runner: ===>填写runner的描述(可为空)
- Enter tags for the runner (comma-separated): ===> 填写runner的标签(后面需要用到,一般跟项目的名称一直)
- Enter optional maintenance note for the runner: ===> 填写可维护说明(可为空)
- Enter an executor: docker, docker-ssh, custom, parallels, shell, ssh, virtualbox, docker+machine, docker-ssh+machine, instance, kubernetes: ===>填写执行器,一般为shell
Runner注册具体操作方式到gitlab网站创建runner,获取相关信息注册
- 进入CICD
- 创建Runner
- 生成地址url和 token, 注册runner
- 安装其它软件安装汇智在线项目huizhi 需要的环境node、 npm、 git
- 防止默认安装 git 1.x 版本
sudo yum install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm -y
- 安装 node 等
yum install nodejs npm git -y
- 防止默认安装 git 1.x 版本
- 启用Runner
5.gitlab-runner用户权限
近期需要迁服务,重新搭建自动化部署,并重新配置CICD脚本,在安装完gitlab-runner时,未将用户改为root,而导致流水线运行时报错,下面是异常现象:
原因分析:
当前用户没有权限访问,所以需要赋权限或者使用root账号,本文使用root账户
解决方案:
方式一:gitlab-runner修改root权限
1、查看gitlab-runner进程
ps aux|grep gitlab-runner
2、卸载gitlab-runner默认用户
sudo gitlab-runner uninstall
3、将用户设置为root
gitlab-runner install --working-directory /home/gitlab-runner --user root
4、重启服务
systemctl restart gitlab-runner.service
5、再次查看gitlab-runner进程
ps aux|grep gitlab-runner
参考:https://blog.csdn.net/hzblucky1314/article/details/125966138
方式二:gitlab-runner修改root权限
参考:https://blog.csdn.net/m0_67403240/article/details/126644282
转载请注明来源:GitLab简介与安装