Jenkins自動化部署最全面教程
Jenkins是什麼?
Jenkins是一個開源的、提供友好操作界面的持續集成(CI)工具,起源於Hudson(Hudson是商用的),主要用於持續、自動的構建/測試軟件項目、監控外部任務的運行。Jenkins用Java語言編寫,可在Tomcat等流行的servlet容器中運行,也可獨立運行。通常與版本管理工具(SCM)、構建工具結合使用。常用的版本控制工具有SVN、GIT,構建工具有Maven、Ant、Gradle。
下面是詳細的安裝教程,本例基於centos7操作系統。
安裝java
yum install -y java-1.8.0-openjdk
查看java是否安裝成功
java -version
#openjdk version "1.8.0_242"
#OpenJDK Runtime Environment (build 1.8.0_242-b08)
#OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
添加Jenkins repo
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import http://pkg.jenkins.io/redhat-stable/jenkins.io.key
更新Jenkins repo cache
yum clean all
yum makecache
安裝Jenkins
yum install jenkins -y
yum install安裝比較慢,到http://pkg.jenkins-ci.org/redhat-stable/ 中下載指定版本的安裝包,再通過
rpm
來安裝。
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.164.2-1.1.noarch.rpm
rpm -ivh jenkins-2.164.2-1.1.noarch.rpm
啓動Jenkins
systemctl start jenkins
# 檢查Jenkins服務狀態
sudo systemctl status jenkins
# 設置爲開機自啓動
sudo systemctl enable jenkins
# 啓動Jenkins服務
sudo systemctl start jenkins
在瀏覽器中訪問
http://<jenkins_host_ip>:8080
確認是否可以打開Jenkins的Getting Started頁面。
如果無法訪問,請檢查防火牆,安全組等是否開放了端口
配置Jenkins
選擇“Install Suggested Plugins”繼續配置Jenkins,等待Jenkins插件安裝完成。
正在安裝插件…
可以使用admin賬號進行登錄
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-O6pu9vmF-1582728874063)(https://cdn.nlark.com/yuque/0/2020/png/757992/1582717915397-78d6ecbe-255d-46bc-9e6a-f2cfd8c2d59c.png#align=left&display=inline&height=912&name=image.png&originHeight=912&originWidth=1028&size=142159&status=done&style=none&width=1028)]
至此,jenkins已經安裝完成。若在系統管理下有插件未安裝成功,可以在 系統管理->插件管理中 進行重新安裝。
配置jenkins插件鏡像,在系統管理->插件管理->高級 ,配置鏡像。
清華大學鏡像
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
使用Jenkins構建項目
新建任務
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-42Ym3CoM-1582728874067)(https://cdn.nlark.com/yuque/0/2020/png/757992/1582724928531-918affa4-41d9-40cc-ba8a-b33c1965963f.png#align=left&display=inline&height=524&name=image.png&originHeight=524&originWidth=949&size=42739&status=done&style=none&width=949)]
配置git作爲源碼管理
配置git用戶名和密碼
選擇構建環境
這裏選擇node,可以在插件管理中添加NodeJS插件,然後在全局工具配置中添加node配置
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-9p4bebqB-1582728874072)(https://cdn.nlark.com/yuque/0/2020/png/757992/1582725248072-4e4a2116-7469-4f8f-bbb6-8c1c0b12c995.png#align=left&display=inline&height=711&name=image.png&originHeight=711&originWidth=1469&size=66820&status=done&style=none&width=1469)]
構建執行步驟
選擇執行shell
然後配置構建命令
立即構建
如果出現 git fetch origin 或者 權限禁止等錯誤,是因爲Jenkins默認是以用戶Jenkins去執行的,可以配置root用戶去執行或提高用戶Jenkins的權限。
修改Jenkins以root用戶運行
注意: 在正式環境不建議這樣做。
打開jenkins配置文件:
vim /etc/sysconfig/jenkins
將原來的jenkins用戶修改爲 root用戶。
$JENKINS_USER="root"
修改Jenkins相關文件夾用戶權限,更改jenkins三個文件夾的用戶所有都和用戶組:
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
重啓Jenkins
systemctl restart jenkins
查看Jenkins進程所屬用戶,若顯示爲root用戶,則表示修改完成。
ps -ef | grep jenkins
Jenkins和Github配置Webhook
可以讓項目的每次push都會自動去構建
配置Jenkins webhook
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-SGVlkCWH-1582728874078)(https://cdn.nlark.com/yuque/0/2020/png/757992/1582727652895-cbd405e4-cffb-4d87-b490-0cc7e187a5e4.png#align=left&display=inline&height=315&name=image.png&originHeight=315&originWidth=1568&size=30035&status=done&style=none&width=1568)]
配置Github webhook
進入github項目中,點擊settings
點擊 Add Webhook
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-QDEd55og-1582728874080)(https://cdn.nlark.com/yuque/0/2020/png/757992/1582727891708-e7e21b23-465c-4278-9c4b-0589ab6685fe.png#align=left&display=inline&height=617&name=image.png&originHeight=617&originWidth=880&size=50276&status=done&style=none&width=880)]
並選擇pushs事件,然後就可以看到webhook添加成功
配置Jenkins項目
最後需要配置Jenkins項目觸發的條件,到此刻,Github遇到Push事件時,Jenkins會收到通知,但Jenkins應該做什麼呢?此步驟就是做最後的構建的動作。
在任務配置中選擇
測試
本地開發環境提交代碼到master分支上,然後可以看到Jenkins自動會進行構建
到此,jenkins自動化部署已經全部實現了