jenkins持續集成簡介、搭建與使用
一、jenkins簡介
Jenkins是開源CI&CD軟件領導者, 提供超過1000個插件來支持構建、部署、自動化, 滿足任何項目的需要。
Jenkins用Java語言編寫,可在Tomcat等流行的servlet容器中運行,也可獨立運行。
CI(Continuous integration持續集成)持續集成強調開發人員提交了新代碼之後,立刻進行構建、(單元)測試。
CD(Continuous Delivery持續交付) 是在持續集成的基礎上,將集成後的代碼部署到更貼近真實運行環境(類生產環境)中。
軟件下載:https://jenkins.io/zh/download/
國內鏡像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
這裏下載的版本是jenkins-2.237-1.1.noarch.rpm
安裝jenkins還需要依賴包:jdk-8u121-linux-x64.rpm
二、jenkins的搭建
安裝jenkins:
[root@server2 ~]# rpm -ivh jdk-8u121-linux-x64.rpm
[root@server2 ~]# rpm -ivh jenkins-2.237-1.1.noarch.rpm
[root@server2 ~]# systemctl start jenkins
啓動後可以看到配置數據已經出來了:
[root@server2 ~]# cd /var/lib/jenkins/
[root@server2 jenkins]# ls
config.xml jobs secret.key.not-so-secret
failed-boot-attempts.txt logs secrets
hudson.model.UpdateCenter.xml nodeMonitors.xml userContent
identity.key.enc nodes users
jenkins.install.UpgradeWizard.state plugins
jenkins.telemetry.Correlator.xml secret.key
在瀏覽器輸入:172.25.63.2:8080
訪問jenkins:
提示輸入密碼,這個密碼保存在/var/lib/jenkins/secrets/initialAdminPassword
文件中:
[root@server2 jenkins]# cat /var/lib/jenkins/secrets/initialAdminPassword
d50c7a5fd6e24fc988a556248d464d66
我們先不急着輸密碼,由於jenkins的插件源都指向外網,因此我們需要更改:
[root@server2 jenkins]# vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
[root@server2 jenkins]# cat /var/lib/jenkins/hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
</site>
</sites>
[root@server2 updates]# pwd
/var/lib/jenkins/updates
[root@server2 updates]# sed -i.bak 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
[root@server2 updates]# sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
[root@server2 updates]# systemctl restart jenkins
更改後複製密碼登陸:
選擇安裝推薦的插件,等待安裝完成:
之後選擇使用admin繼續 --開始
jenkins已經搭建完成。
三、jenkins的使用
創建一個新項目:
在server2安裝git:
[root@server2 updates]# yum install git -y
添加憑據:
添加每分鐘輪詢:
構建中選擇shell:
之後進行保存。
查看控制檯輸出:
這樣一個項目就搭建完成,但是這樣也會有缺點,我們設置的每分鐘觸發更新可能會不太及時或者做無用功。因此我們可以配合gitlab實現gitlab的觸發。