gitlab中组的分类及权限介绍

Posted 你是我的导航

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gitlab中组的分类及权限介绍相关的知识,希望对你有一定的参考价值。

gitlab基本功能

  gitlab是支持人员权限管理的, 且在其内部支持分组规划; 一般情况下的分组都会对应到研发部的各个部门, 比如前端组、后端组、大数据组、数据分析组、测试组、运维组, 当然以上的分组配置为一般中小互联网企业的人员架构, 若是在大公司中是以项目为单位的, 在项目组下划分子组的概念, 分为运维、测试、前后端研发等, 在gitlab中也是支持子组的概念的;

一切IT人员都离不开代码。

创建组

在gitlab里,可以创建出组,组下的子组。在小公司里可以看见gitlab里边会创建出后端,大数据,数据分析组等等一系列组。

对于gitlab而言创建组是非常简单的, 但也有比较重要的注意点就是尽量不要使用中文创建组名, 可以在组信息中的备注编写中文描述以及中文组名, 组内人员名称也尽量用全拼命名; 在组内有相关的按钮可以实现组内人员的添加, 对于人员权限以及角色的控制也比较简单分为 `owner`、 `maintainer(管理员-只是具备sudo权限的用户)`、 `developer(开发者)`、 `repoter(仓库的查看者)`、 `guest(匿名用户)` 这五种角色和权限的控制;

对于组级别内设置的五种权限

  1. owner是最高权限的,谁去创建组,这个组就被谁拥有,它可以开除管理员,但管理员无法操作owner的角色。
  2. maintainer(管理员-只是具备sudo权限的用户)管理员一般是给小组的组长,或者是给产品线的总监设定。
  3. developer是干活的人,就是写代码的程序员,可以进行代码的上传以及代码的下载,不能下载其他的组内的代码,只能下载它们组的代码。
  4. repoter:比如现在有需求,其他组的大牛到我们组过来指导工作,要审视我们的代码,人家就提出需要一个权限,我不能给它developer因为它会改你代码,其他组的人不能改我们组的代码,所以就给一个repoter权限,他只能看,只读权限。
  5. guest:不用看,匿名,直接去掉。一般出现在从ldap中把离职人员的信息删掉,再去gitlab查这个人的时候,它就是一个guest用户(匿名)需要再到gitlab把它删掉(不删也没事)。

如下是创建方法。

 这四个选项卡不一定随时都存在。下面是永远都不会变的路径。

 点进去之后会看见,gitlab整个网站的统计信息。

小公司(200-400人)这么创建。

 公司内部也要选私有,只有组内人员可见组内的项目。第二个不允许,所有人登录到gitlab里面之后,是看不见公司所有的代码的,不同组别之间是无法完全相互之间查看代码的,只有组内成员能看见负责的代码。

 大公司(上千人,上万人):分业务

比如:支付宝,分为安卓和ios以及pc。三大阵营统称为大前端以及小程序。(产品角度)

功能分类:以支付宝app作为基点,app中可以有支付宝的小程序,单独负责支付宝小程序的单独拉出来成为一组,小程序需要有前端去开发,后端去提供技术支持,运维负责上线,测试负责测试该小程序,这就是小公司,大公司的一趟业务线就是小公司。

再开出一条作支付服务的:刷脸功能,密令功能,绑银行卡功能等,都是由另一条产品线,叫支付产品线,它们里面把运维,研发,ios,安卓都配齐了,然后开发支付功能,运维去上线,跟别的运维之间进行联调的工作。多个产品线构成了一个支付宝。每一条产品线都是独立完整的小公司体系。数据结构会分的很多。

【注意】少熬夜,多看书。

Jenkins——持续集成及Jenkins介绍和安装配置(插件,用户权限,凭据,Maven安装打包,配置tomcat用户权限)

持续集成及Jenkins介绍

软件开发生命周期

软件开发生命周期又叫做SDLC(Software Development Life Cycle),它是集合了计划、开发、测试和部署过程的集合

在这里插入图片描述
Requirement Analysis(需求分析)

  • 这是生命周期的第一阶段,根据项目需求,团队执行一个可行性计划的分析。
  • 项目需求可能是公司内部或者客户提出的。这阶段主要是对信息的收集,也有可能是对现有项目的改善和重新做一个新的项目。
  • 还要分析项目的预算多长,可以从哪方面受益及布局,这也是项目创建的目标。

Design(设计)

  • 第二阶段就是设计阶段,系统架构和满意状态(就是要做成什么样子,有什么功能),和创建一个项目计划。计划可以使用图表,布局设计或者文者的方式呈现。

Implementation(实现/实施)

  • 第三阶段就是实现阶段,项目经理创建和分配工作给开者,开发者根据任务和在设计阶段定义的目标进行开发代码。依据项目的大小和复杂程度,可以需要数月或更长时间才能完成。

Testing(测试)

  • 测试人员进行代码测试 ,包括功能测试、代码测试、压力测试等。

Evolution(进化)

  • 最后进阶段就是对产品不断的进化改进和维护阶段,根据用户的使用情况,可能需要对某功能进行修
    改,bug修复,功能增加等。

持续集成

持续集成( Continuous integration , 简称 CI )指的是,频繁地(一天多次)将代码集成到主干。

持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
在这里插入图片描述

  1. 提交
    流程的第一步,是开发者向代码仓库提交代码。所有后面的步骤都始于本地代码的一次提交(commit)

  2. 测试(第一轮)
    代码仓库对commit操作配置了钩子(hook),只要提交代码或者合并进主干,就会跑自动化测试

  3. 构建
    通过第一轮测试,代码就可以合并进主干,就算可以交付了
    交付后,就先进行构建(build),再进入第二轮测试。所谓构建,指的是将源码转换为可以运行的实
    际代码,比如安装依赖,配置各种资源(样式表、JS脚本、图片)等等

  4. 测试(第二轮)
    构建完成,就要进行第二轮测试。如果第一轮已经涵盖了所有测试内容,第二轮可以省略,当然,这时构建步骤也要移到第一轮测试前面

  5. 部署
    过了第二轮测试,当前代码就是一个可以直接部署的版本(artifact)。将这个版本的所有文件打包(tar filename.tar * )存档,发到生产服务器

  6. 回滚
    一旦当前版本发生问题,就要回滚到上一个版本的构建结果。最简单的做法就是修改一下符号链接,指向上一个版本的目录

持续集成的组成要素

  • 一个自动构建过程, 从检出代码、 编译构建、 运行测试、 结果记录、 测试统计等都是自动完成的, 无需人工干预。
  • 一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库,一般使用SVN或Git。
  • 一个持续集成服务器Jenkins 就是一个配置简单和使用方便的持续集成服务器

在这里插入图片描述

持续集成的好处

  1. 降低风险,由于持续集成不断去构建,编译和测试,可以很早期发现问题,所以修复的代价就少
  2. 对系统健康持续检查,减少发布风险带来的问题
  3. 减少重复性工作
  4. 持续部署,提供可部署单元包
  5. 持续交付可供使用的版本
  6. 增强团队信心

Jenkins介绍

Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。

Jenkins开源帮助我们自动构建各类项目。Jenkins强大的插件式,使得Jenkins可以集成很多软件,可以帮助我们持续集成我们的工程项目。官网

Jenkins的特征

  • 开源的Java语言开发持续集成工具,支持持续集成,持续部署
  • 易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理
  • 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告
  • 分布式构建:支持Jenkins能够让多台计算机一起构建/测试
  • 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等
  • 丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等

Jenkins安装和持续集成环境配置

在这里插入图片描述

  1. 首先,开发人员每天进行代码提交,提交到Git仓库
  2. 然后,Jenkins作为持续集成工具,使用Git工具到Git仓库拉取代码到集成服务器,再配合JDK,Maven等软件完成代码编译,代码测试与审查,测试,打包等工作,在这个过程中每一步出错,都重新再执行一次整个流程
  3. 最后,Jenkins把生成的jar或war包分发到测试服务器或者生产服务器,测试人员或用户就可以访问应用。
角色ip安装软件
代码托管服务器192.168.188.97Gitlab-12.9.5
持续集成服务器192.168.188.98Jenkins 2.290-1.1,JDK1.8,Maven3.8.1 Git,SonarQube
应用测试服务器192.168.188.99JDK1.8,Tomcat8.5

Gitlab代码托管服务器安装

下载 Centos7 gitlab 12.9.5社区版

安装相关依赖
yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python


设置postfix开机自启,并启动,postfix支持gitlab发信功能
systemctl enable postfix && systemctl start postfix

关闭防火墙
关闭selinux安全中心

将下载的gitlab上传至服务器并安装
rpm -ivh gitlab-ce-12.9.5-ce.0.el7.x86_64.rpm

安装成功
在这里插入图片描述

修改gitlab配置
vim /etc/gitlab/gitlab.rb

修改gitlab访问地址和端口,默认为80,我们改为82
external_url 'http://192.168.188.97:82'
nginx['listen_port'] = 82

修改时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'

重载配置及启动gitlab
gitlab-ctl reconfigure	# 这个命令会执行几分钟
gitlab-ctl restart

浏览器登录gitlab仓库

第一次需要修改root账户密码
在这里插入图片描述
在这里插入图片描述
登陆成功
在这里插入图片描述

Gitlab添加组、创建用户、创建项目

创建组

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

创建用户
点击上面的小扳手
在这里插入图片描述
点击new user
在这里插入图片描述
选择普通用户类型
在这里插入图片描述
创建成功之后,再次编辑用户,可给用户设置密码
在这里插入图片描述
将新建用户分配到之前创建的组里面
用户可用分配5种角色
在这里插入图片描述
Gitlab用户在组里面有5种不同权限:

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

我们为新用户分配一个owner权限 将其拉入组内
在这里插入图片描述
使用新用户登录gitlab

源码上传到Gitlab仓库

写一个简单的微服务
在这里插入图片描述

开启版本控制

在这里插入图片描述
选择Git
在这里插入图片描述
提交代码到本地仓库
先Add到缓存区
右键项目选择Git
在这里插入图片描述
再Commit到本地仓库
在这里插入图片描述
添加远程仓库地址
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后推送到Gitlab项目仓库中
在这里插入图片描述
进入仓库查看
在这里插入图片描述

Jenkins安装

接下来我们在Jenkins服务器上操作

Jenkins需要依赖JDK,所以先安装JDK1.8
yum install -y java-1.8.0-openjdk* 

安装目录为:/usr/lib/jvm

[root@jenkins ~]# cd /usr/lib/jvm
[root@jenkins jvm]# ls
java                                             java-openjdk       jre-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
java-1.8.0                                       jre                jre-openjdk
java-1.8.0-openjdk                               jre-1.8.0
java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64  jre-1.8.0-openjdk

获取jenkins安装包

下载jenkins安装包
下载地址

上传至服务器
安装
rpm -ivh jenkins-2.290-1.1.noarch.rpm 

修改Jenkins配置
vim /etc/sysconfig/jenkins 

修改jenkins操作的用户为root
JENKINS_USER="root"

修改端口 默认是8080 我们改成8888
JENKINS_PORT="8888"

启动Jenkins
service jenkins start

通过浏览器ip+端口

输入密码
在这里插入图片描述
因为Jenkins插件需要连接默认官网下载,速度非常慢,而且经过会失败,所以我们暂时先跳过插件安装

点右边选择插件安装
在这里插入图片描述
选择
在这里插入图片描述
创建用户
在这里插入图片描述
在这里插入图片描述

Jenkins插件管理

Jenkins国外官方插件地址下载速度非常慢,所以可以修改为国内插件地址
Jenkins->Manage Jenkins->Manage Plugins,点击Available

在这里插入图片描述
这样做是为了把Jenkins官方的插件列表下载到本地,接着修改地址文件,替换为国内插件地址

/var/lib/jenkins/是jenkins的目录

[root@jenkins ~]# cd /var/lib/jenkins/
[root@jenkins jenkins]# ls
config.xml                                      jenkins.telemetry.Correlator.xml  secret.key
hudson.model.UpdateCenter.xml                   jobs                              secret.key.not-so-secret
identity.key.enc                                logs                              secrets
jenkins.install.InstallUtil.lastExecVersion     nodeMonitors.xml                  updates
jenkins.install.UpgradeWizard.state             nodes                             userContent
jenkins.model.JenkinsLocationConfiguration.xml  plugins                           users
[root@jenkins jenkins]# cd updates/
[root@jenkins updates]# ls
default.json  hudson.tasks.Maven.MavenInstaller

default.json就是插件下载地址 

我们修改插件地址

sed -i 's/http:\\/\\/updates.jenkins-ci.org\\/download/https:\\/\\/mirrors.tuna.tsinghua.edu.cn\\/jenkins/g' default.json && sed -i 's/http:\\/\\/www.google.com/https:\\/\\/www.baidu.com/g' default.json

最后,Manage Plugins点击Advanced,把Update Site改为国内插件下载地址

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

在这里插入图片描述
在浏览器ip后面/restart 然后重启jenkins
在这里插入图片描述
下载中文汉化包
在这里插入图片描述
在这里插入图片描述
重启后发现已经汉化
在这里插入图片描述

Jenkins用户权限管理

我们可以利用Role-based Authorization Strategy 插件来管理Jenkins用户权限
在这里插入图片描述
在这里插入图片描述
选择
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建一个角色用有读权限
在这里插入图片描述
创建两个角色可以访问java项目和springboot
在这里插入图片描述
在这里插入图片描述
创建两个新的用户
在这里插入图片描述
我们通过新创建用户登录jenkins 发现没有权限
在这里插入图片描述
我们通过管理员账号给新用户分配角色
都分配基本的登陆权限
然后xiaotian账号只能访问java.*项目
zhuzhu只能访问springboot.*项目
在这里插入图片描述
在这里插入图片描述
创建项目进行权限测试
在这里插入图片描述
创建两个项目
在这里插入图片描述
使用不同账户登陆验证
xiaotian只能看到java01
在这里插入图片描述
zhuzhu只能看到springboot01
在这里插入图片描述

Jenkins凭证管理

凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方的应用进行交互。

安装Credentials Binding插件
要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件

在这里插入图片描述
如果遇到下载失败的 则单独搜索这个插件名去下载 就可以了
在这里插入图片描述
下载完成之后会在安全里面出现凭据
在这里插入图片描述
新建一个凭据
在这里插入图片描述
在这里插入图片描述
可以添加的凭证有5种:

  1. Username with password:用户名和密码
  2. SSH Username with private key: 使用SSH用户和密钥
  3. Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret file就会被删除
  4. Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token
  5. Certificate:通过上传证书文件的方式

常用的凭证类型有:Username with password用户密码SSH Username with private keySSH
密钥

配置凭据 将gitlab上面的代码拉取到jenkins

为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOS7上安装Git工具。

下载完成之后 ,去服务器上安装Git
在这里插入图片描述

yum install -y git  

git --version

[root@jenkins updates]# git --version
git version 1.8.3.1

创建用户密码类型凭证

Jenkins->凭证->系统->全局凭证->添加凭证
这里不要搞混了,添加的账号和密码是gitlab
在这里插入图片描述

我们去创建一个测试项目test01
在这里插入图片描述
因为我们凭据使用的是账户密码 因此git拉去方式选择http方式
选择之前设置的凭据
在这里插入图片描述

选择构建项目
在这里插入图片描述
控制台可以查看拉取过程
在这里插入图片描述

我们还可以去服务器上查看拉取的代码
[root@jenkins updates]# cd /var/lib/jenkins/workspace/
[root@jenkins workspace]# ls
test01  test01@tmp
[root@jenkins workspace]# cd test01
[root@jenkins test01]# ls
Dockerfile  mvnw  mvnw.cmd  pom.xml  README.md  src

发现代码已经成功拉取

创建SSH密钥类型凭据

SSH免密登录示意图
在这里插入图片描述

在jenkins服务器上
使用root用户生成公钥和私钥
ssh-keygen

[root@jenkins test01]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:uaNyKPfRpidfpY5X/3uFs35z1uKeRcLyDyS7SBNIztY root@jenkins
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|        .        |
|       + +   .   |
|        S E + +..|
|       o . +.*oo.|
|     .. = =...oo+|
|  . + o=.*.o .+**|
|   o +++o.o .+=*B|
+----[SHA256]-----+

[root@jenkins test01]# cd ~/.ssh
[root@jenkins .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub

id_rsa:私钥
id_rsa.pub:公钥

查看公钥
[root@jenkins .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChllQOWhOT9D/AOnmFlOw9n/iS5paokmMsmZpW7okORv7SGTa/W0BJ5kiP+zt0JxLKbZc1fp3teOU9wVrggjrc7
QQZDWhKDA4ughlI8OtQE9PflgYA/0SvlB+wxLPYInBNKMmhyGctxJyXO/Mnvvliu7zomwPNpD5HWoxXFW3Q+g5XphhdTcWuhiPxzfaL51xQqsalwgYruD3S335KyU0E0c1IyAdCfYUzRTfplTlxfKq692lfyas9eKihaVT3rkMYYF0z1HVRfiN8qdvJbpPJTDIfTXJ2cW8S+YBGCSEwaWvEzQ5GIgLABpdcCuFJRB5rqrzTgziJEPuv5mKhlE6p root@jenkins

通过浏览器打开gitlab
使用root账号登录 点击头像选择设置

在这里插入图片描述
在这里插入图片描述
公钥上传完毕
在这里插入图片描述
去jenkins上面添加SSH类型的凭证
在这里插入图片描述
需要添加root的私钥

[root@jenkins .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub
[root@jenkins .ssh]# cat id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpgIBAAKCAQEAoZZUDloTk/Q/wDp5hZTsPZ/4kuaWqJJjLJmaVu6JDkb+0hk2
v1tASeZIj/s7dCcSym2XNX6d7XjlPcFa4II63O0EGQ1oSgwOLoIZSPDrUBPT35YG
AP9Er5QfsMSz2CJwTSjJochnLcSclzvzJ775Yru86JsDzaQ+R1qMVxVt0PoOV6YY
XU3FroYj8c32i+dcUKrGpcIGK7g90t9+SslNBNHNSMgHQn2FM0U36ZU5cXyquvdp
X8mrPXiooWlU965DGGBdM9R1UX4jfKnbyW6TyUwyH01ydnFvEvmARgkhMGlrxM0O
RiICwAaXXArhSUQea6q804M4iRD7r+ZioZROqQIDAQABAoIBAQCcQbHRGxwZlDVd
324KVkPJJ/wJmoCQTNcolvUgIZVZwB/E7er6SvS1QcJjsXAB15MdO7LgYSu5K5KL
EIKf3m+rmmu/Ci8Sg+vm35ox5f+3tSTK7tmpdzBllZi7qMu9Mzhj9RBeqVvVb255
9NgjVFL3PlLkoJqh7rTm7VIPGELUtKEYmjFZVkslx5vXQnoyxkR31FLN/q5/cu3v
Fp5RBVsTKbXxke4JPd1nru0avSsnCBUKuqobYx/5nScwzsRUVpfVQ2LRdVAQM70D
XHxvvxqqHMY/x2a+4mzH0INQGf2vbCHFVoxOCFAStYqLv9nA2/IPS9yfC+bKMWFj
5zHzbBvtAoGBANQ2pPc7aW9iR5wgJ9nNyOk1hyt3cElkP2PYkpxvLzbx3t7xkXS7
ClHMzXYAmTJdjG/mZbYY3w25Lglm9zMXq7hn94XHBQ7SskIjMGBPsACjVK6HGIrI
2bTrzRCEkbqNueS/JhU9Lgry7IJDuVs8OjRrND5TE/rmbsLoeGTeb9QXAoGBAMLt
jHuEVbCsDpFTBNwWE3ckGnyQjoNRSMCRzTbAl2heGo686SuJ5O7P8MOWe1Cr+WQX
DCo23N4aw7J35esi1K5j6/Ul3mzNhqrhlfQDAbiLbYydz4+rY/ePSw8gKG0xomYA
cbCb/58RCOryO6HAJzE7gf6qaQ2QwzGF5TQ7Uus/AoGBAImfCmp+8AhY3wHD5LQd
/S4oFYm9wmcGCQnyWFn0zNTAFH3WgTMHXVDhFVlyV+dOvZWP/+QQyw52SgG08ZkD
v8wuOFpcT85mG05CzcuXwhcX1QH+AI94Y58t0GXm4y7tXGGZCNR7QZG+KlzsGJev
PjviThYhAHMU3z2tTu5zRmhvAoGBAIAp1B46SmUZG5LtdNqIIVBKiqewHCO3RBBp
TPZc9rAGf4uuJdkcl0t1qSXQQVAvYpAuny76V4opKtajAqbxhckLpc7PkUkUcSDV
pdSETZNbCTJVaG1cESRqML3HNQ1mfxJ15Epsp0uc1bI0hoS5ZIt4RuZ8gQoMTmq3
UJZhEwndAoGBAMyxN5CLB6l95pbqBnSK+Q18CWieP3dTml9KOiBkOm3SuWTLR1j4
BkNuMvcwbTljDjB62nANZDxT6YcS7/sAe6k2PAbcuyTamqstwkbVeVB+Ev/EDerb
QuifSB8wN3Te+HYoAsl2FQJYi+ffeJ9NCCPLP1uICMsDE9JD7hUpdxQJ
-----END RSA PRIVATE KEY-----

将私钥add进凭据
在这里插入图片描述在这里插入图片描述
添加一个新项目进行测试
在这里插入图片描述
将gitlab上面ssh 链接复制到项目里面
在这里插入图片描述
构建项目
在这里插入图片描述
成功啦
再去服务器上面查看git的代码

[root@jenkins .ssh]# cd /var/lib/jenkins/workspace/test02
[root@jenkins test02]# ls
Dockerfile  mvnw  mvnw.cmd  pom.xml  README.md  src

test02就是刚刚拉取的代码

Maven安装及配置

在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目
下载地址
我下载的 apache-maven-3.8.1-bin.tar.gz

上传至jenkens服务器
解包
tar xf apache-maven-3.8.1-bin.tar.gz 

mv apache-maven-3.8.1 /usr/local
cd /usr/local
mv apache-maven-3.8.1 maven

修改环境变量
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

source /etc/profile

查看版本
mvn -v

[root@jenkins local]# mvn -v
Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: /usr/local/maven
Java version: 1.8.0_292, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1127.19.1.el7.x86_64", arch: "amd64", family: "unix"

全局工具配置关联JDK和Maven

浏览器来到全局工具配置
在这里插入图片描述
配置jdk
在这里插入图片描述
配置maven
在这里插入图片描述

添加Jenkins全局变量

在系统配置中的全局属性
添加三个全局变量

  • JAVA_HOME
  • M2_HOME
  • PATH+EXTRA
    在这里插入图片描述
    在这里插入图片描述
    修改Maven的settings.xml提高下载速度
mkdir /root/repo

vim /usr/local/maven/conf/settings.xml

修改本地仓库路径
  -->
  <localRepository>/root/repo</localRepository>
  
<mirror>
 <id>alimaven</id>
 <name>aliyun maven</name>
 <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
 <mirrorOf>central</mirrorOf>
</mirror>

在这里插入图片描述在这里插入图片描述

测试Maven是否配置成功

进入test02项目的配置
构建下面添加shell脚本
在这里插入图片描述
让mvn先清空字节码和构建好的包
然后package 构建一个war包
在这里插入图片描述
构建
在这里插入图片描述
控制台查看输入
正在使用配置的阿里源拉取包
在这里插入图片描述
等待一会儿 项目成功编译和打包
在这里插入图片描述
进入项目目录下查看
在这里插入图片描述

Tomcat安装和配置

进入tomcat服务器
安装JDK
yum install -y  java-1.8.0-openjdk* 

java -version

tar xf apache-tomcat-8.5.16.tar.gz -C /usr/local

cd /usr/local
mv apache-tomcat-8.5.16 tomcat

启动tomcat
cd /usr/local/tomcat/bin
./startup.sh 

通过浏览器测试

在这里插入图片描述

配置Tomcat用户角色权限

我们在tomcat网页下点击
在这里插入图片描述
发现权限不足
在这里插入图片描述
后续Jenkins部署项目到Tomcat服务器,需要用到Tomcat的用户,所以修改tomcat以下配置,添加用户及权限

cd /usr/local/tomcat/conf/
vim tomcat-users.xml

添加角色
<role rolename="tomcat"/> 
<role rolename="role1"/> 
<role rolename="manager-script"/> 
<role rolename="manager-gui"/> 
<role rolename="manager-status"/> 
<role rolename="admin-gui"/> 
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>

在这里插入图片描述

用户和密码都是:tomcat
为了能够刚才配置的用户登录到Tomcat,还需要修改以下配置

vim /usr/local/tomcat/webapps/manager/META-INF/context.xml

注释
  <!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\\.\\d+\\.\\d+\\.\\d+|::1|0:0:0:0:0:0:0:1" />
  -->

注意:xml文件注释是 <!--	-->

在这里插入图片描述
重启tomcat
点击manager webapp
输入tomcat tomcat
在这里插入图片描述
在这里插入图片描述

以上是关于gitlab中组的分类及权限介绍的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins——持续集成介绍及Jenkins安装部署(插件+用户权限+凭据+Maven打包)

Jenkins持续集成 之 GitLab 组权限设置

Acl-cakePHP 中组的通用权限

如何为 TFS 中组的特定用户提供签出和签入访问权限

Jenkins——Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包)

BigOps自动化运维平台整合Zabbix系统