一、Jenkins概述
二、安装Jenkins
https://pkg.jenkins.io/redhat-stable/sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.keyyum install jenkins
相关包介绍
/usr/lib/jenkins/jenkins.war WAR包 /etc/sysconfig/jenkins 配置文件/var/lib/jenkins/ 默认的JENKINS_HOME目录/var/log/jenkins/jenkins.log Jenkins日志文件
配置与启动
[root@jspgou ~]# lsof -i:8080[root@jspgou ~]# /etc/init.d/jenkins start Starting jenkins (via systemctl): [ OK ][root@jspgou ~]# lsof -i:8080COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEjava 26969 jenkins 162u IPv6 68624 0t0 TCP *:webcache (LISTEN)[root@jspgou ~]# rpm -qa | grep jenkinsjenkins-2.107.1-1.1.noarch[root@jspgou ~]# rpm -ql jenkins /etc/init.d/jenkins/etc/logrotate.d/jenkins/etc/sysconfig/jenkins/usr/lib/jenkins/usr/lib/jenkins/jenkins.war/usr/sbin/rcjenkins/var/cache/jenkins/var/lib/jenkins/var/log/jenkins[root@jspgou ~]#
在浏览器中登录,初始密码在如下文件中:
[root@jspgou ~]# cat /var/lib/jenkins/secrets/initialAdminPassword389c09a28ecb42fe871a82d4414c5472[root@jspgou ~]#
三、在WEB中配置Jenkins
登录
系统管理--添加插件
添加ssh、maven等相关插件
以下插件需要选择安装Ansible pluginAnt PluginBlue OceanBuild TimeoutEmail Extension PluginGit Parameter Plug-InGitlab Hook PluginGitLab PluginMaven Invoker pluginMaven Integration pluginPublish Over SSHSSH pluginSSH Slaves plugin
方法如下图所示:
系统管理--系统配置
系统配置--指定管理员邮箱地址
系统配置--设置邮件通知的SMTP服务器及其相关配置
系统配置--设置SSH 远程服务器地址及其配置
如果需要指定私钥文件,还需要将私钥复制到/var/lib/jenkins 目录,如下所示:
mkdir .sshcp ~/.ssh/id_rsa .ssh/chown -R jenkins.jenkins .ssh
如下图所示:
系统管理--全局工具配置
全局工具配置--配置jdk
全局工具配置--配置maven
在Gitlab创建一个Jenkins用户:
并将Jenkins用户加入到相应的组(Group)
在Jenkins中添加相关的Credentials:
将Gitlab中Jenkins用户的username 和密码填入Credentials中:
创建Jenkins项目(例1):
配置项目中的git server
添加访问git server的ssh密钥(私钥)
配置项目中的构建(使用maven构建包)
配置项目中的构建后动作
在配置完毕的项目上进行构建
查看本次构建过程
构建报告
创建Jenkins项目(例2):
首先在使用git 为 code 添加Tag,如下所示:
[eric@meteor maven01]$ vim src/main/java/inspiry/cn/maven/HelloWorld.java [eric@meteor maven01]$ git add . [eric@meteor maven01]$ git commit -m 'stable branch'[stable 4cfc2e3] stable branch 1 file changed, 1 insertion(+)[eric@meteor maven01]$ git tag v1.0.2[eric@meteor maven01]$ git tagv1.0.2[eric@meteor maven01]$ git push -u origin stableCounting objects: 17, done.Delta compression using up to 8 threads.Compressing objects: 100% (4/4), done.Writing objects: 100% (9/9), 583 bytes | 0 bytes/s, done.Total 9 (delta 2), reused 0 (delta 0)remote: remote: To create a merge request for stable, visit:remote: http://192.168.60.119/plat-sp/maven01/merge_requests/new?merge_request%5Bsource_branch%5D=stableremote: To git@192.168.60.119:plat-sp/maven01.git* [new branch] stable -> stableBranch stable set up to track remote branch stable from origin.[eric@meteor maven01]$ [eric@meteor maven01]$ git branch master* stable[eric@meteor maven01]$ git push origin v1.0.2Total 0 (delta 0), reused 0 (delta 0)To git@192.168.60.119:plat-sp/maven01.git * [new tag] v1.0.2 -> v1.0.2[eric@meteor maven01]$
然后在gitlab中可以查看相关的Tag:
然后添加Jenkins项目时设置如下:
选择“参数化构建过程”,如下所示:
指定gitlab 仓库时使用http方式,并选择相关包含读取权限的credentials,如下所示:
在构建环境中选择“在构建前删除workspace”
构建过程选择全局设置的MAVEN名称,并指定参数,如下所示:
构建后将target/*.jar 包推到SSH server 的指定目录下,并执行相关脚本或shell语句,如下所示:
选择项目构建时,指定需要构建的Tag,如下所示:
构建后结果如下所示: