一、Jenkins概述
Jenkins入门

二、安装Jenkins

https://pkg.jenkins.io/redhat-stable/
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins

 

 

相关包介绍

/usr/lib/jenkins/jenkins.war    WAR包 
/etc/sysconfig/jenkins          配置文件
/var/lib/jenkins/               默认的JENKINS_HOME目录
/var/log/jenkins/jenkins.log    Jenkins日志文件

 

 

配置与启动

[[email protected] ~]# lsof -i:8080
[[email protected] ~]# /etc/init.d/jenkins start 
Starting jenkins (via systemctl):                          [  OK  ]
[[email protected] ~]# lsof -i:8080
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    26969 jenkins  162u  IPv6  68624      0t0  TCP *:webcache (LISTEN)
[[email protected] ~]# rpm -qa | grep jenkins
jenkins-2.107.1-1.1.noarch
[[email protected] ~]# 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
[[email protected] ~]#

 

 

在浏览器中登录,初始密码在如下文件中:

[[email protected] ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
389c09a28ecb42fe871a82d4414c5472
[[email protected] ~]#

 

 

三、在WEB中配置Jenkins

登录
Jenkins入门

系统管理--添加插件
Jenkins入门

添加ssh、maven等相关插件

以下插件需要选择安装
Ansible plugin
Ant Plugin
Blue Ocean
Build Timeout
Email Extension Plugin
Git Parameter Plug-In
Gitlab Hook Plugin
GitLab Plugin
Maven Invoker plugin
Maven Integration plugin
Publish Over SSH
SSH plugin
SSH Slaves plugin

方法如下图所示:
Jenkins入门

系统管理--系统配置
Jenkins入门

系统配置--指定管理员邮箱地址
Jenkins入门

系统配置--设置邮件通知的SMTP服务器及其相关配置
Jenkins入门

系统配置--设置SSH 远程服务器地址及其配置
Jenkins入门

如果需要指定私钥文件,还需要将私钥复制到/var/lib/jenkins 目录,如下所示:

mkdir  .ssh
cp ~/.ssh/id_rsa  .ssh/
chown -R jenkins.jenkins .ssh

如下图所示:
Jenkins入门

系统管理--全局工具配置
Jenkins入门

全局工具配置--配置jdk
Jenkins入门

全局工具配置--配置maven
Jenkins入门

在Gitlab创建一个Jenkins用户:
Jenkins入门

并将Jenkins用户加入到相应的组(Group)
Jenkins入门

在Jenkins中添加相关的Credentials:
Jenkins入门

将Gitlab中Jenkins用户的username 和密码填入Credentials中:
Jenkins入门

创建Jenkins项目(例1):
Jenkins入门

配置项目中的git server
Jenkins入门

添加访问git server的ssh密钥(私钥)
Jenkins入门

配置项目中的构建(使用maven构建包)
Jenkins入门

配置项目中的构建后动作
Jenkins入门

在配置完毕的项目上进行构建
Jenkins入门

查看本次构建过程
Jenkins入门

构建报告
Jenkins入门

创建Jenkins项目(例2):
首先在使用git 为 code 添加Tag,如下所示:

[[email protected] maven01]$ vim src/main/java/inspiry/cn/maven/HelloWorld.java 
[[email protected] maven01]$ git add . 
[[email protected] maven01]$ git commit -m 'stable branch'
[stable 4cfc2e3] stable branch
 1 file changed, 1 insertion(+)
[[email protected] maven01]$ git tag v1.0.2
[[email protected] maven01]$ git tag
v1.0.2
[[email protected] maven01]$ git push -u origin stable
Counting 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=stable
remote: 
To [email protected]:plat-sp/maven01.git
* [new branch]      stable -> stable
Branch stable set up to track remote branch stable from origin.
[[email protected] maven01]$ 
[[email protected] maven01]$ git branch
  master
* stable
[[email protected] maven01]$ git push origin v1.0.2
Total 0 (delta 0), reused 0 (delta 0)
To [email protected]:plat-sp/maven01.git
 * [new tag]         v1.0.2 -> v1.0.2
[[email protected] maven01]$ 

Jenkins入门

然后在gitlab中可以查看相关的Tag:
Jenkins入门

然后添加Jenkins项目时设置如下:
Jenkins入门

选择“参数化构建过程”,如下所示:
Jenkins入门

指定gitlab 仓库时使用http方式,并选择相关包含读取权限的credentials,如下所示:
Jenkins入门

在构建环境中选择“在构建前删除workspace”
Jenkins入门

构建过程选择全局设置的MAVEN名称,并指定参数,如下所示:
Jenkins入门

构建后将target/*.jar 包推到SSH server 的指定目录下,并执行相关脚本或shell语句,如下所示:
Jenkins入门

选择项目构建时,指定需要构建的Tag,如下所示:
Jenkins入门

构建后结果如下所示:
Jenkins入门