Jenkins自動化部署最全面教程

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插件安裝完成。

image.png

正在安裝插件…

image.png
可以使用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)]

image.png
image.png

至此,jenkins已經安裝完成。若在系統管理下有插件未安裝成功,可以在 系統管理->插件管理中 進行重新安裝。
image.png
配置jenkins插件鏡像,在系統管理->插件管理->高級 ,配置鏡像。

清華大學鏡像

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

image.png

使用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)]

image.png

配置git作爲源碼管理

image.png

配置git用戶名和密碼

image.png

選擇構建環境

這裏選擇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
image.png
然後配置構建命令
image.png

立即構建

image.png

如果出現 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

image.png

image.png

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(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
image.png
點擊 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添加成功
image.png

配置Jenkins項目

最後需要配置Jenkins項目觸發的條件,到此刻,Github遇到Push事件時,Jenkins會收到通知,但Jenkins應該做什麼呢?此步驟就是做最後的構建的動作。
在任務配置中選擇
image.png

測試

本地開發環境提交代碼到master分支上,然後可以看到Jenkins自動會進行構建
image.png
到此,jenkins自動化部署已經全部實現了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章