jenkins整合gitlab持续集成
关键词:jenkins Gitlab maven 邮件
环境信息:
服务器 | 作用 |
---|---|
服务器1 | gitlab服务器,管理代码 |
服务器2 | jenkins服务器,构建 |
服务器3 | ssh目标服务器,执行代码 |
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
执行命令使配置生效: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、管理插件:系统设置--插件管理
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
先在gitlab上创建api token:
然后jenkins这里配置凭据:
注意,添加完之后,需要手动选择,不会自动选中:
配置之后,可以点击右下角的 测试按钮,测试是否能连接gitlab:
6.2、配置邮件服务:
6.2.1、Jenkins Location:配置系统管理员邮件:
6.2.2、配置Extended E-mail Notification: (不需要可以不配)
我这里使用的qq邮箱的SMTP 服务,记得要先去QQ邮箱(设置--账户中)开启这个服务,然后会给一个SMTP服务密码,配置在图片的SMTP Password中
在 Default Triggers 中,可以配置触发邮件提醒的情况:根据实际情况选择
6.2.3、邮件通知:
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 如下图配置(图里文字写错了,应该是私钥路径和私钥值)
7、全局配置:
7.1、配置JDK:
7.2、配置gitlab:
7.3、配置maven:有需要的话,不需要就不管
mvn -v
查看maven版本的时候,就可以看到maven的路径
8、新建项目:
8.1、General中:
配置GitLab Connection:选择6.2中配置的gitlab
8.2、Source Code Management中:选择Git
Repository URL:配置gitlab中的ssh克隆地址
Credentials:点击旁边这个按钮 新建连接gitlab的信息:
这里的凭据有很多类型可以选择,最简单的就是使用账号密码,就是你登录gitlab时使用的账号密码
新建完之后,并不会自动选上凭据,需要手动选择一下:
如果要使用别的类型的凭证,比如api令牌方式(如下),其余类型可自行百度别的方式如何操作
8.3、Build Triggers 中:
选择 Build when a change is pushed to GitLab:
点右下角的 高级 继续配置:
在gitlab中,设置 webhooks:
配置完,应用--保存即可
8.4、build:
增加构建步骤:选择 Invoke top-level Maven targets
maven版本:选择之前6.3在系统设置中配置的maven
目前:配置需要maven执行的指令: (maven 指令需要自己学)
8.5、构建后操作:
8.5.1、增加构建够操作步骤:send build artifacts over SSH (作用是,把构建后的文件传输到目标服务器执行)
SSH server: 选择 6.4 中配置好的SSH server
Transfers:根据实际需要配置,比如把得到的jar包发送到远程服务器上:
构建后的文件都是放在:/var/lib/jenkins/workspace/
项目名 下
Exec command:这里配置,文件传输到目标服务器后,需要在目标服务器上执行的指令,如: java -jar jar包名
8.5.2、增加构建够操作步骤:Edlitable Email Notification (作用是,发送邮件通知)
9、效果:
配置完成之后,当提交代码到gitlab时,会自动触发构建,并且把构建后的文件传输到目标服务器执行,并发送邮件通知:
转载自 超可爱的小迪呀 已授权