標籤(空格分隔): Jenkinshtml
[TOC]java
##1、DevOpslinux
DevOps是「開發」和「運維」的縮寫。
DevOps是一組最佳實踐強調(IT研發、運維、測試)在應用和服務生命週期中的協做和溝通,強調整個組織的合做以及交付和基礎設施變動的自動化,從而實現持續集成、持續部署和持續交付git
DevOps平臺四大模塊web
1.項目管理 (建立項目--->>項目需求) 2.運維平臺 (監控--日誌收集---等) 3.持續交付 (提交完代碼--->自動打包--->構建) 4.代碼託管 (gitlab---->代碼提交) ————————————————————>>DevOps平臺
針對DevOps開源項目docker
1.項目管理---(JIRA非開源可是用的人比較多)、(Redmine使用ruby寫的) 2.代碼託管---(SVN--usvn有web管理界面)、(GitLab) 3.持續交付---(主流Jenkins)、(GitLab gitlab-ci也能夠作交付) 4.運維平臺---(國內的開源運維平臺可能就是騰訊藍鯨)
<br>shell
</br>
<br>apache
</br>vim
##2、服務介紹緩存
不少事情不是光運維就能夠決定的,還須要跟研發交流,我這裏只是演示一個大概的持續交付的流程~
2.1 Jenkins介紹Jenkins
只是一個平臺,真正運做的都是插件。這就是jenkins流行的緣由,由於jenkins什麼插件都有Hudson
是Jenkins的前身,是基於Java開發的一種持續集成工具,用於監控程序重複的工做,Hudson後來被收購,成爲商業版。後來創始人又寫了一個jenkins,jenkins在功能上遠遠超過hudson
<br>
</br>
2.2 Maven 介紹
maven的用途
maven是一個項目構建和管理的工具,提供了幫助管理 構建、文檔、報告、依賴、scms、發佈、分發
的方法。能夠方便的編譯代碼、進行依賴管理、管理二進制庫等等。
maven的好處在於能夠將項目過程規範化、自動化、高效化以及強大的可擴展性
利用maven自身及其插件還能夠得到代碼檢查報告、單元測試覆蓋率、實現持續集成等等。
maven的核心概念介紹
Pom
pom是指project object Model。pom是一個xml,在maven2裏爲pom.xml。是maven工做的基礎,在執行task或者goal時,maven會去項目根目錄下讀取pom.xml得到須要的配置信息pom文件中包含了項目的信息和maven build項目所需的配置
Artifact
這個有點很差解釋,大體說就是一個項目將要產生的文件,能夠是jar文件,源文件,二進制文件,war文件,甚至是pom文件。每一個artifact都由groupId:artifactId:version組成的標識符惟一識別。須要被使用(依賴)的artifact都要放在倉庫(見Repository)中Repositories
Repositories是用來存儲Artifact的。若是說咱們的項目產生的Artifact是一個個小工具,那麼Repositories就是一個倉庫,裏面有咱們本身建立的工具,也能夠儲存別人造的工具,咱們在項目中須要使用某種工具時,在pom中聲明dependency,編譯代碼時就會根據dependency去下載工具(Artifact),供本身使用。Build Lifecycle
是指一個項目build的過程。maven的Build
Lifecycle分爲三種,分別爲default(處理項目的部署)、clean(處理項目的清理)、site(處理項目的文檔生成)。他們都包含不一樣的lifecycle。
Build Lifecycle是由phases構成的....
參考:關於Maven經常使用參數及說明
<br>
</br>
2.3 SVN介紹
SVN是近年來崛起的很是優秀的版本管理工具,與CVS管理工具同樣,SVN是一個固態的跨平臺的開源的版本控制系統。SVN版本管理工具管理者隨時間改變的各類數據。這些數據放置在一箇中央資料檔案庫repository
中,這個檔案庫很像一個普通的文件服務器或者FTP服務器,可是,與其餘服務器不一樣的是,SVN會備份並記錄每一個文件每一次的修改更新變更。這樣咱們就能夠把任意一個時間點的檔案恢復到想要的某一箇舊的版本,固然也能夠直接瀏覽指定的更新歷史記錄。
本站相關文章
SVN服務實戰應用指南
VisualSVN 遷移至Linux SVN+Apache+ssl集成LDAP
<br>
</br>
2.4 Nexus介紹
maven的倉庫只有兩大類:1.本地倉庫 2.遠程倉庫,在遠程倉庫中又分紅了3種:1 中央倉庫 <br/>2 私服 <br/>3 其它公共庫。
私服是一種特殊的遠程倉庫,它是架設在局域網內的倉庫服務,私服代理廣域網上的遠程倉庫,供局域網內的Maven用戶使用。當Maven須要下載構件的時候,它從私服請求,若是私服上不存在該構件,則從外部的遠程倉庫下載,緩存在私服上以後,再爲Maven的下載請求提供服務。咱們還能夠把一些沒法從外部倉庫下載到的構件上傳到私服上。
Maven私服的 個特性:
- [ ] 1.節省本身的外網帶寬:減小重複請求形成的外網帶寬消耗
- [ ] 2.加速Maven構件:若是項目配置了不少外部遠程倉庫的時候,構建速度就會大大下降
- [ ] 3.部署第三方構件:有些構件沒法從外部倉庫得到的時候,咱們能夠把這些構件部署到內部倉庫(私服)中,供內部maven項目使用
- [ ] 4.提升穩定性,加強控制:Internet不穩定的時候,maven構建也會變的不穩定,一些私服軟件還提供了其餘的功能
- [ ] 5.下降中央倉庫的負荷:maven中央倉庫被請求的數量是巨大的,配置私服也能夠大大下降中央倉庫的壓力
所以咱們在實際的項目中一般使用私服來間接訪問中央倉庫,項目一般不直接訪問中央倉庫
<br>
</br>
<br>
</br>
##3、環境搭建
- [x] 首先最新版本2.97 只支持java1.8,咱們須要將jdk版本設置爲1.8
- [x] tomcat的版本最好也是8.0.x版本,若是使用8.5可能會有問題
- [x] 系統咱們使用Centos7
3.1 配置jdk環境
$ wget http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz $ tar zxf jdk-8u91-linux-x64.tar.gz -C /usr/local/ $ ln –s /usr/local/jdk1.8.0_91 /usr/local/jdk $ vim /etc/profile export JAVA_HOME=/usr/local/jdk export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH 檢查 $ java -version java version "1.8.0_151" Java(TM) SE Runtime Environment (build 1.8.0_151-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
<br>
</br>
3.1 安裝Jenkins
提示:首先Jenkins安裝方式有2中,一種是yum安裝,另外一種是使用war的方式進行安裝(war就須要安裝tomcat)
官方文檔:https://pkg.jenkins.io/redhat/
若是咱們想使用war包的方式能夠直接下載war包
這裏咱們能夠參考本站之前文章 持續集成之Jenkins+Gitlab簡介 [一]
<br>
</br>
下載tomcat (tomcat和jdk版本最好相同)
$ wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.0.48/bin/apache-tomcat-8.0.48.tar.gz $ tar xf apache-tomcat-8.0.48.tar.gz –C /application/ $ mv /application/apache-tomcat-8.0.48 /application/jenkins $ rm –rf /application/jenkins/webapps/* && mkdir –p /application/jenkins/webapps/ROOT 下載war包 $ wget http://mirrors.jenkins.io/war/latest/jenkins.war $ cp jenkins.war /application/jenkins/webapps/ROOT/ $unzip /application/jenkins/webapps/ROOT/jenkins.war 咱們直接執行bin/startup.sh啓動就能夠
<br>
</br>
啓動咱們能夠查看tomcat日誌
Jenkins訪問地址:localhost:8080
關於tomcat安裝參數及配置修改能夠參考本站 企業必會技能tomcat
新版本的jenkins爲了保證安全,在安裝以後有一個鎖,須要設置密碼以後才能夠解鎖
咱們選擇推薦安裝便可
安裝插件中
設置管理員帳號密碼
登錄jenkins
<br>
</br>
3.2 安裝maven環境
$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz $ tar xf apache-maven-3.5.2-src.tar.gz $ mv apache-maven-3.5.2 /usr/local/ $ ln -s /usr/local/apache-maven-3.5.2/ /usr/local/maven $ vim /etc/profile export M2_HOME=/usr/local/maven export PATH=${M2_HOME}/bin:$PATH $source /etc/profile 驗證 $ mvn -v Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T03:58:13-04:00) Maven home: /usr/local/maven Java version: 1.8.0_151, vendor: Oracle Corporation Java home: /usr/local/jdk1.8.0_151/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix" 這裏咱們須要修改maven的settings.xml 設置一些相關配置。這裏咱們直接訪問 https://www.abcdocker.com/abcdocker/2893
<br>
</br>
3.3 安裝私服(Nexus)
下載地址:http://www.sonatype.org/nexus/go/
$ wget https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-3.7.0-04-unix.tar.gz $ tar xf nexus-3.7.0-04-unix.tar.gz -C /usr/local/ $ ln -s /usr/local/nexus-3.7.0-04/ /usr/local/nexus 設置環境變量 $ vim /etc/profile export JAVA_HOME=/usr/local/jdk export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH export JENKINS_HOME=/jenkins export M2_HOME=/usr/local/maven export PATH=${M2_HOME}/bin:$PATH:/usr/local/nexus/bin $ source /etc/profile
啓動腳本
$ nexus WARNING: ************************************************************ WARNING: Detected execution as "root" user. This is NOT recommended! WARNING: ************************************************************ Usage: /usr/local/nexus/bin/nexus {start|stop|run|run-redirect|status|restart|force-reload} $ nexus start WARNING: ************************************************************ WARNING: Detected execution as "root" user. This is NOT recommended! WARNING: ************************************************************ Starting nexus 若是咱們想把警告去除,須要在修改用戶和環境變量。
訪問地址:localhost:8081
端口能夠在/etc/nexus-default.properties中修改)
nexus登錄界面
<br>
</br>
3.4 Jenkins 配置
由於咱們須要構建Java項目,因此須要安裝一個Maven插件
插件名稱Maven Integration plugin
系統管理-->管理插件
此時咱們能夠在已安裝的插件中找到
<br>
</br>
配置Jenkins全局工具配置系統管理-->全局工具配置
配置咱們的JDK、Maven地址保存就能夠
<br>
</br>
##4、Jenkins構建項目
4.1 建立maven項目
建立maven項目,起名稱
4.2 設置構建參數
這裏是說咱們構建的記錄保留的天數與個數
SVN地址以及帳戶的配置
沒有問題就不會報錯
這是maven的編譯參數,若是有問題須要與研發的童鞋商議
添加Shell腳本,添加的shell腳本能夠是命令,也能夠是執行一個腳本。
構建演示:
這裏是正在下載依賴包,由於咱們項目通常在測試環境使用,是不少研發一塊兒使用,因此這裏的地址就是咱們私服(Nexus地址)
執行完畢
<br>
</br>
當咱們執行完成以後上面的shell腳本能夠是將war包複製到tomcat項目目錄裏
/jenkins/workspace/maven/bxg-ask-center-web/target --jenkins主目錄---項目目錄----代碼分支-----
如下是咱們之前Jenkins shell中的配置,比較low 僅供參考
<br>
</br>
提示:不少相關的參數不是運維能決定的,須要研發參與
更改Jenkins的主目錄
https://www.cnblogs.com/zz0412/p/jenkins_jj_07.html
如何用Maven建立web項目(具體步驟)
http://www.javashuo.com/article/p-dufsqbdp-n.html
Maven私服Nexus詳解
http://blog.csdn.net/u013516966/article/details/43753143
maven核心,pom.xml詳解(轉)
http://www.javashuo.com/article/p-zfrnlmcy-z.html