Jenkins部署
CI/CD介紹
網際網路軟體的開發和釋出,已經形成了一套標準流程,假如把開發工作流程分為以下幾個階段:
編碼 → 構建 → 整合 → 測試 → 交付 → 部署
正如你在上圖中看到,持續整合(Continuous Integration)、持續交付(Continuous Delivery)和持續部署(Continuous Deployment)有著不同的軟體自動化交付週期。
持續整合(CI)
上面整個流程中最重要的組成部分就是持續整合(Continuous integration,簡稱CI)。
持續整合指的是,頻繁地(一天多次)將程式碼整合到主幹。將軟體個人研發的部分向軟體整體部分交付,頻繁進行整合以便更快地發現其中的錯誤。
它的好處主要有兩個:
- 快速發現錯誤。每完成一點更新,就整合到主幹,可以快速發現錯誤,定位錯誤也比較容易;
- 防止分支大幅偏離主幹。如果不是經常整合,主幹又在不斷更新,會導致以後整合的難度變大,甚至難以整合。
持續整合並不能消除Bug,而是讓它們非常容易發現和改正。持續整合的目的,就是讓產品可以快速迭代,同時還能保持高質量。它的核心措施是,程式碼整合到主幹之前,必須通過自動化測試。只要有一個測試用例失敗,就不能整合。
持續交付
持續交付(Continuous delivery)指的是,頻繁地將軟體的新版本,交付給質量團隊或者使用者,以供評審。如果評審通過,程式碼就進入生產階段。
持續交付在持續整合的基礎上,將整合後的程式碼部署到更貼近真實執行環境的「類生產環境」(production-like environments)中。持續交付優先於整個產品生命週期的軟體部署,建立在高水平自動化持續整合之上。
持續交付可以看作持續整合的下一步。它強調的是,不管怎麼更新,軟體是隨時隨地可以交付的。
持續部署(CD)
持續部署(continuous deployment)是持續交付的下一步,指的是程式碼通過評審以後,自動部署到生產環境。
持續部署的目標是,程式碼在任何時刻都是可部署的,可以進入生產階段。
持續部署的前提是能自動化完成測試、構建、部署等步驟。
總的來說,持續整合、持續交付、持續部署提供了一個優秀的 DevOps 環境。對於整個開發團隊來說,能很大地提升開發效率,好處與挑戰並行。無論如何,頻繁部署、快速交付以及開發測試流程自動化都將成為未來軟體工程的重要組成部分。
Jenkins介紹
Jenkins是一個獨立的開源自動化伺服器,可用於自動化各種任務,如構建,測試和部署軟體。Jenkins可以通過本機系統包Docker安裝,甚至可以通過安裝Java Runtime Environment的任何機器獨立執行。
Jenkins是一個開源的、提供友好操作介面的持續整合(CI)工具,起源於Hudson(Hudson是商用的),主要用於持續、自動的構建/測試軟體專案、監控外部任務的執行(這個比較抽象,暫且寫上,不做解釋)。Jenkins用Java語言編寫,可在Tomcat等流行的servlet容器中執行,也可獨立執行。通常與版本管理工具、構建工具結合使用。常用的版本控制工具有SVN、GIT,構建工具有Maven、Ant、Gradle。
部署
# 本地源
[root@localhost ~]# yum -y install java-1.8.0-openjdk*
[root@localhost ~]#java -jar jenkins.war
複製密碼進入
[root@localhost ~]# cat /root/.jenkins/secrets/initialAdminPassword
371c4f91c6a847e8ad62e064baad9808
按步驟建立賬戶完成配置
由於此種方式執行會佔據前端,不推薦.下面介紹第二種
運用容器
## 安裝tomcat
[root@localhost ~]# ls
anaconda-ks.cfg
apache-maven-3.6.3-bin.tar.gz
apache-tomcat-9.0.16.tar.gz
jenkins.war
[root@localhost ~]# tar xf apache-tomcat-9.0.16.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local
[root@localhost local]# ls
apache-tomcat-9.0.16 games lib64 share
bin include libexec src
etc lib sbin
[root@localhost local]# ln -s apache-tomcat-9.0.16/ tomcat
# 將程式放到webapps裡
[root@localhost local]# cd tomcat
[root@localhost tomcat]# ls
bin lib README.md webapps
BUILDING.txt LICENSE RELEASE-NOTES work
conf logs RUNNING.txt
CONTRIBUTING.md NOTICE temp
[root@localhost tomcat]# cd webapps/
[root@localhost webapps]# cp ~/jenkins.war .
[root@localhost webapps]# ls
docs host-manager manager
examples jenkins.war ROOT
# 啟動
[root@localhost webapps]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
用第一種方式中建立好的賬戶登入
Jenkins配置
漢化
1 、安裝外掛
主介面 -> 系統管理 -> 外掛管理 -> 可選外掛
安裝這兩個外掛,然後重啟 Jenkins
-
安裝外掛Locale plugin
-
安裝外掛Localization: Chinese(Simplified)
到此已經修改成功
後續舊版本步驟
修改配置
若修改為中文簡體,Default Language設定為:
zh_cn
若修改為中文繁體,Default Language設定為:
zh_tw
若要修改回英文,Default Language設定為:
en_us
相關文章
- jenkins前端部署Jenkins前端
- docker 部署jenkinsDockerJenkins
- Jenkins PHP 部署示例JenkinsPHP
- Jenkins自動部署配置Jenkins
- Jenkins安裝部署(一)Jenkins
- 基於docker部署jenkinsDockerJenkins
- Jenkins部署架構概述Jenkins架構
- Jenkins部署以及基本使用Jenkins
- 部署Jenkins + 遇到的問題Jenkins
- jar包部署,jenkins整合javaJARJenkinsJava
- Helm部署和體驗jenkinsJenkins
- Jenkins自動部署spring bootJenkinsSpring Boot
- Jenkins部署碼雲SpringBoot專案JenkinsSpring Boot
- Jenkins部署Python專案實戰JenkinsPython
- vue 自動化部署 jenkins 篇VueJenkins
- Docker 之 Jenkins自動化部署DockerJenkins
- docker下安裝部署jenkins(一)DockerJenkins
- [求助] jenkins 自動部署報錯Jenkins
- Jenkins 自動化(CI/DI)部署Jenkins
- Jenkins in Action :GitLab 部署 Maven 專案JenkinsGitlabMaven
- Windows + Jenkins + .NetFramework + SVN 持續部署WindowsJenkinsFramework
- Docker:Docker部署Jenkins並共用宿主機Docker部署微服務多模組(一)Jenkins部署及外掛環境搭建DockerJenkins微服務
- Jenkins持續部署-Windows環境持續部署探究1JenkinsWindows
- 使用jenkins連線linux部署jar包JenkinsLinuxJAR
- Docker 搭建 Jenkins 實現自動部署DockerJenkins
- 2020 docker部署Jenkins學習筆記DockerJenkins筆記
- 陷入jenkins自動化部署的坑Jenkins
- 基於Jenkins Pipeline自動化部署Jenkins
- windows環境Jenkins部署前端專案WindowsJenkins前端
- GitLab + Jenkins + ACK 自動化部署方案GitlabJenkins
- jenkins+docker進行微服務部署JenkinsDocker微服務
- Jenkins部署Web專案到遠端tomcatJenkinsWebTomcat
- 使用Jenkins自動化部署Java專案JenkinsJava
- jenkins自動化專案部署實戰Jenkins
- linux中使用jenkins自動部署前端工程LinuxJenkins前端
- k8s如何部署分散式jenkinsK8S分散式Jenkins
- 搭建jenkins配合gitee實現自動部署JenkinsGitee
- 持續整合工具之Jenkins安裝部署Jenkins