1. 程式人生 > >Jenkins入門

Jenkins入門

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日誌文件

配置與啟動

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

三、在WEB中配置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

方法如下圖所示:
技術分享圖片

系統管理--系統配置
技術分享圖片

系統配置--指定管理員郵箱地址
技術分享圖片

系統配置--設置郵件通知的SMTP服務器及其相關配置
技術分享圖片

系統配置--設置SSH 遠程服務器地址及其配置
技術分享圖片

如果需要指定私鑰文件,還需要將私鑰復制到/var/lib/jenkins 目錄,如下所示:

mkdir  .ssh
cp ~/.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 tag
v1.0.2
[eric@meteor 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.
[eric@meteor maven01]$ 
[eric@meteor maven01]$ git branch
  master
* stable
[eric@meteor 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
[eric@meteor maven01]$ 

技術分享圖片

然後在gitlab中可以查看相關的Tag:
技術分享圖片

然後添加Jenkins項目時設置如下:
技術分享圖片

選擇“參數化構建過程”,如下所示:
技術分享圖片

指定gitlab 倉庫時使用http方式,並選擇相關包含讀取權限的credentials,如下所示:
技術分享圖片

在構建環境中選擇“在構建前刪除workspace”
技術分享圖片

構建過程選擇全局設置的MAVEN名稱,並指定參數,如下所示:
技術分享圖片

構建後將target/*.jar 包推到SSH server 的指定目錄下,並執行相關腳本或shell語句,如下所示:
技術分享圖片

選擇項目構建時,指定需要構建的Tag,如下所示:
技術分享圖片

構建後結果如下所示:
技術分享圖片

Jenkins入門