轉自:https://blog.csdn.net/tanshizhen119/article/details/80328523git
持續集成,俗稱CI, 大師Martin Fowler對持續集成是這樣定義的:持續集成是一種軟件開發實踐,即團隊開發成員常常集成他們的工做,一般每一個成員天天至少集成一次,也就意味着天天可能會發生屢次集成。每次集成都經過自動化的構建(包括編譯,發佈,自動化測試)來驗證,從而儘快地發現集成錯誤。許多團隊發現這個過程能夠大大減小集成的問題,讓團隊可以更快的開發內聚的軟件。docker
按照個人理解持續集成就是,一個經過一些手段或者是工具,在整個系統開發過程當中,對於某一個時段(儘量的短)完成部分功能向整個系統集成,經過編譯,單元測試,自動化腳本等方式來驗證整個功能是否存在問題,從而及時的發現問題並解決問題。在持續集成過程當中,還有一個最重要的概念是自動化,編譯,代碼掃描,測試(單元,性能等測試),包括部署到測試環境等,這些步驟儘量的自動化。tomcat
jenkins就是一個很好的持續集成工具,它有一千多個插件,各式各樣的插件多得不行,支持的語言工具也不少。並且ci在整個devops工具鏈中處於中心位置,負責鏈接各類工具。bash
jenkins部署的方式不少,能夠用tomcat, 或者運行單獨的war包,按照個人習慣,我比較喜歡用docker來部署。框架
docker鏡像地址maven
拉取docker鏡像:docker pull jenkinssvn
運行jenkins docker鏡像:工具
mkdir /data/jenkins_datadocker run -d --name myjenkins -p 8080:8080 -p 50000:50000 -v /data/jenkins_data:/var/jenkins_home jenkins
就這麼簡單,docker就啓動好了 訪問:http://IP:8080gitlab
第一次登錄要輸入初始密碼,初始密碼在 /var/jenkins_home/secrets/initialAdminPassword(這個是docker地址)性能
這個地址是docker裏的地址,咱們能夠進docker裏面去找:
docker exec -it myjenkins bash
cat /var/jenkins_home/secrets/initialAdminPassword
ctrl +p ,q 退出docker
另一種方法:
因爲咱們啓動時是否作了目錄掛載:-v /data/jenkins_data:/var/jenkins_home
因此不用進docker裏,直接執行 cat /data/jenkins_data/secrets/initialAdminPassword
將輸入初始管理密碼後,就能夠進jenkins了,而後一路按照默認下載插件,而後建立一個管理員就好。
這樣就已經安裝好了。
jenkins是一個至關出色的平臺簡約卻不簡單,整個平臺提供一個最最核心的功能,可是它的插件居然有一千多種。git, maven, ant,gerrit, gitlab, svn各類各樣。只惋惜免費可是不開源。
jenkins功能是至關的豐富的,可是從最最簡單的來說,它最核心的就是相似於一個做業平臺。用戶能夠再上面建立job, 而後手動或者自動執行。它有着豐富的插件,可讓你方面的調用或者是關聯各個系統或工具,來知足各式各樣的要求。
我以爲jenkins2.0是引入了pipeline
什麼是Pipeline,簡單來講,就是一套運行於Jenkins上的工做流框架,將本來獨立運行於單個或者多個節點的任務鏈接起來,實現單個任務難以完成的複雜發佈流程。Pipeline的實現方式是一套Groovy DSL,任何發佈流程均可以表述爲一段Groovy腳本,而且Jenkins支持從代碼庫直接讀取腳本,從而實現了Pipeline as Code的理念。
以下圖就是pipeline執行的結果。這裏先拋磚引玉,而後再詳細介紹一下jenkins pipeline