jenkins中GitLab的配置及其使用

2,598 阅读4分钟

这是我参与8月更文挑战的第2天,活动详情查看:8月更文挑战

Gitlab安装

部份参考自 黑马程序员Java教程自动化部署Jenkins从环境配置到项目开发

简介

image.png

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的 web服务。

GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(基于MIT协议),与Github类似, 可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器 上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放 在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。

相关配置

  • 安装相关依赖
 yum -y install policycoreutils openssh-server openssh-clients postfix
  • 启动ssh服务&设置为开机启动
 systemctl enable sshd && sudo systemctl start sshd
  • 设置postfix开机自启,并启动,postfix支持gitlab发信功能
 systemctl enable postfix && systemctl start postfix
  • 开放ssh以及http服务,然后重新加载防火墙列表
 firewall-cmd --add-service=ssh --permanent
 firewall-cmd --add-service=http --permanent
 firewall-cmd --reload

如果关闭防火墙就不需要做以上配置

安装

下载gitlab包,并且安装

在线下载安装包:

 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-12.4.2-ce.0.el6.x

安装

 rpm -i gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm

修改gitlab配置

配置文件在/opt/gitlab/etc/gitlab.rb

修改nginx端口

 vim /opt/gitlab/etc/gitlab.rb

修改gitlab访问地址和端口,默认为80,我们改为82,记得把注释删掉

 external_url 'http://ip:82'
 nginx['listen_port'] = 82

image-20210729104257934

把端口添加到防火墙

 firewall-cmd --zone=public --add-port=82/tcp --permanent
 firewall-cmd --reload #重启防火墙

修改unicorn端口

同样是在gitlab配置文件

 vim /opt/gitlab/etc/gitlab.rb

修改unicorn端口,默认为8080,记得把注释删掉

 ## Advanced settings
 unicorn['listen'] = '127.0.0.1'
 unicorn['port'] = 想要的端口

重载配置及重启gitlab

 gitlab-ctl reconfigure
 gitlab-ctl restart

成功

image-20210729163823508

使用

默认账号和密码都为root,第一次进需要修改密码

image-20210729215243352

创建组

使用管理员 root 创建组,一个组里面可以有多个项目分支,可以将开发添加到组里面进行设置权限, 不同的组就是公司不同的开发项目或者服务模块,不同的组添加不同的开发即可实现对开发设置权限的管理

image-20210729215723059

  • 填上相关信息,选择私人模式

image-20210729221303169

  • 创建项目,点击【New project】

image-20210729221518663

  • 填上项目信息

image-20210729221712080

  • 成功创建

image-20210729222007324

创建用户

image-20210729222317278

  • 可以看到现在只有一个管理员账户

image-20210729222509519

  • 配置用户信息,选择Regular访问权限

image-20210729222744779

  • 更改密码

image-20210729222918636

image-20210729222957436

将用户添加到组中

  • 进入项目,选择要添加的用户,选择用户权限

image-20210729223811870

Gitlab用户在组里面有5种不同权限:

  • Guest:可以创建issue、发表评论,不能读写版本库
  • Reporter:可以克隆代码,不能提交,QA、PM 可以赋予这个权限
  • Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
  • Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个 权限
  • Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组组 长可以赋予这个权限

SSH密钥配置

SSH免密登录示意图

image-20210729225207338

  • 在jenkins服务器使用root用户生成公钥和私钥
 ssh-keygen -t rsa -C "your name".

一路回车,使用默认值即可,可以无需设置密码。

image-20210730154922594

id_rsa:私钥文件

id_rsa.pub:公钥文件

  • 把生成的公钥放在Gitlab中

    以root账户登录->点击头像->Settings->SSH Keys 复制刚才id_rsa.pub文件的内容到这里,点击【Add Key】

    image-20210730155427675

  • 在Jenkins中添加凭证,配置私钥

    在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私有文件内容复制过来

image-20210730155457671

成功,接下来可以往gitlab仓库提交代码了,jenkins也可以从gitlab拉取代码进行构建


by_白羊