miaodi
发布于 2021-03-11 / 922 阅读 / 0 评论 / 0 点赞

jenkins整合gitlab持续集成

jenkins整合gitlab持续集成

关键词:jenkins Gitlab maven 邮件

环境信息:

服务器作用
服务器1gitlab服务器,管理代码
服务器2jenkins服务器,构建
服务器3ssh目标服务器,执行代码

1. 安装jdk:

1.1、centos下一般默认有安装jdk,建议卸载后,自己装。不卸载的话,就可以看步骤2

1.2、centos 卸载jdk:

查找环境中的JDK:rpm -qa | grep java

删除JDK: rpm -e --nodeps 后面跟系统自带的jdk名

1.3、下载JDK(可以自己新建目录/etc/lib/java,下载的jdk放在这儿),然后

解压jdk:tar -zxvf jdk-8u11-linux-x64.tar.gz (需要修改为实际的jdk名)

1.4、然后修改系统配置文件:

vi /etc/profile

JAVA_HOME=/usr/lib/java/jdk1.8.0_281

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

PATH=$PATH:$JAVA_HOME/bin

执行命令使配置生效:

source /etc/profile

(如果环境已经安装了jenkins,然后再卸载重装的jdk,则需要执行步骤1.5,如果新环境还没有装jenkins,则直接看步骤2)

1.5、修改jenkins的配置文件:

vi /etc/inid.d/jenkins

找到 candidates ,在最后修改为最新安装的jdk路径:/usr/lib/java/jdk1.8.0_281/bin/java

image.png

执行命令使配置生效:source /etc/inid.d/jenkins

执行命令,重新加载配置:systemctl daemon-reload

查看jenkins状态:service jenkins status 状态ok 即可

启动jenkins服务: service jenkins start

2、安装git 和 maven:

2.1、git客户端安装:

yum install git

查看版本:git --version

2.2、maven 安装:

下载:wget https://zysd-shanghai.oss-cn-shanghai.aliyuncs.com/software/linux/maven/apache-maven-3.6.1-bin.tar.gz

解压:tar -zxvf apache-maven-3.6.1-bin.tar.gz

查看版本:mvn -v

3、安装jenkins:

3.1、添加yum源 下载安装Jenkins

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat/jenkins.repo (安装源)

rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key

yum -y install jenkins

3.2、如果无法安装,要么 yum源有问题,执行以下操作后,再次执行上述三个指令即可:

清除yum缓存:rm -rf /var/cache/yum/*

清除所有yum:yum clean all

显示仓库列表:yum repolist

挂载yum源 (3.1中的三个指令)

无法安装也可能是网络问题,多执行几次指令yum -y install jenkins试试

如果还是不行,可以自己先在官网下载好jenkins,然后放到服务器上。也可以去百度别的安装方式

3.3、修改jenkins配置文件:

vim /etc/sysconfig/jenkins

修改项:

JENKINS_USER="root"

JENKINS_PORT="8080" 修改为自己需要的端口,比如8081

3.4、启动jenkins服务:

service jenkins start

如果无法启动的话,可以查看一下jenkins的状态: service jenkins status ,再根据报错来排查

4、浏览器访问jenkins:ip:port

4.1、如果访问提示防火墙受阻:

firewall-cmd --permanent --add-port=8081/tcp

firewall-cmd --reload

4.1、首次登录时,查看密码:

cat /var/lib/jenkins/secrets/initialAdminPassword

4.3、登录成功之后:

可以选择1、安装默认插件;2、自定义安装插件;3、右上角叉掉,暂不安装插件,后续需要时再安装

4.4、创建一个管理员用户:也可以不创建,随意吧

输入账号密码和邮箱即可

5、管理插件:系统设置--插件管理

image.png

gitlab需要的插件有: gitlab plugin

如果构建后的文件,需要远程传输到别的服务器执行的话,需要插件:Publish Over SSH

如果构建后需要邮箱服务的话,需要插件:Email Extension Plugin

可以先在【已安装】tab页搜索是否已经安装好需要的插件,如果没有的话,在【可用的】tab页搜索安装

安装成功之后,执行指令重启jenkins即可: service jenkins restart

6、系统设置:

6.1、配置 Gitlab:

Connection name :随便写,方便自己识别即可

Gitlab host URL:gitlab服务器地址

Credentials:添加连接gitlab 的API token

image.png

先在gitlab上创建api token: image.png

然后jenkins这里配置凭据:

image.png

注意,添加完之后,需要手动选择,不会自动选中:

image.png

配置之后,可以点击右下角的 测试按钮,测试是否能连接gitlab:

image.png

6.2、配置邮件服务:

6.2.1、Jenkins Location:配置系统管理员邮件:

image.png

6.2.2、配置Extended E-mail Notification: (不需要可以不配)

我这里使用的qq邮箱的SMTP 服务,记得要先去QQ邮箱(设置--账户中)开启这个服务,然后会给一个SMTP服务密码,配置在图片的SMTP Password中

image.png

在 Default Triggers 中,可以配置触发邮件提醒的情况:根据实际情况选择

image.png

6.2.3、邮件通知:

image.png

6.3、配置远程传输服务 Publish over SSH:(不需要可以不配)

先在jenkins服务器上执行指令生成秘钥:

ssh-keygen -t rsa -b 2048 -C "xxx@qq.com"

然后:

先把公钥写到ssh服务器上的/root/.ssh/authorized_keys 文件中;

在jenkins服务器上,使用 cat /root/.ssh/id_rsa.pub 查看公钥值

然后到ssh服务器上,使用 vi /root/.ssh/authorized_keys 把公钥值写进文件

再jenkins 如下图配置(图里文字写错了,应该是私钥路径和私钥值)

image.png

7、全局配置:

image.png

7.1、配置JDK:

image.png

7.2、配置gitlab:

image.png

7.3、配置maven:有需要的话,不需要就不管

image.png

mvn -v 查看maven版本的时候,就可以看到maven的路径

8、新建项目:

image.png

8.1、General中:

配置GitLab Connection:选择6.2中配置的gitlab

8.2、Source Code Management中:选择Git

Repository URL:配置gitlab中的ssh克隆地址image.png

Credentials:点击旁边这个按钮 新建连接gitlab的信息:

这里的凭据有很多类型可以选择,最简单的就是使用账号密码,就是你登录gitlab时使用的账号密码

image.png

新建完之后,并不会自动选上凭据,需要手动选择一下:

image.png

如果要使用别的类型的凭证,比如api令牌方式(如下),其余类型可自行百度别的方式如何操作

8.3、Build Triggers 中:

选择 Build when a change is pushed to GitLab:

image.png 点右下角的 高级 继续配置:

image.png

在gitlab中,设置 webhooks:

image.pngimage.png

配置完,应用--保存即可

8.4、build:

增加构建步骤:选择 Invoke top-level Maven targets

image.png

maven版本:选择之前6.3在系统设置中配置的maven

目前:配置需要maven执行的指令: (maven 指令需要自己学)

image.png

8.5、构建后操作:

8.5.1、增加构建够操作步骤:send build artifacts over SSH (作用是,把构建后的文件传输到目标服务器执行)

image.png

SSH server: 选择 6.4 中配置好的SSH server

Transfers:根据实际需要配置,比如把得到的jar包发送到远程服务器上:

构建后的文件都是放在:/var/lib/jenkins/workspace/项目名 下

image.png

Exec command:这里配置,文件传输到目标服务器后,需要在目标服务器上执行的指令,如: java -jar jar包名

8.5.2、增加构建够操作步骤:Edlitable Email Notification (作用是,发送邮件通知)

9、效果:

配置完成之后,当提交代码到gitlab时,会自动触发构建,并且把构建后的文件传输到目标服务器执行,并发送邮件通知:

image.png

image.png


转载自 超可爱的小迪呀 已授权


评论