1. 程式人生 > >阿里雲 jenkins svn maven 構建自動化部署

阿里雲 jenkins svn maven 構建自動化部署

第一步:下載 jdk 、tomcat、jenkins、maven

 

 

jdk:http://www.oracle.com/technetwork/java/javase/downloads/index.html

maven:http://maven.apache.org/download.cgi 

jenkins:https://jenkins.io/download/ 

tomcat:http://tomcat.apache.org/

我下載的版本是 jdk1.8.0_161,Tomcat 8.0.51,maven、jenkins 就直接下最新版就好了 (好像 jenkins 只支援tomcat8 )

下載完成之後上傳到你的阿里雲伺服器上,我下載的型別都是 tar.gz 

安裝maven

將maven安裝包解壓到 /usr/local 目錄下

# tar -zxvf apache-maven-3.5.0-bin.tar.gz  -C /usr/local

進入maven目錄下的 /conf 目錄,修改setting.xml檔案的mirrors配置國內倉庫。

<mirror>  
        <id>nexus-osc</id>  
        <mirrorOf>*</mirrorOf>  
        <name>Nexus osc</name>  
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
</mirror>  

(3)在 /etc/profile 中新增環境變數配置

export MAVEN_HOME=/usr/local/apache-maven-3.5.0 
export PATH=${PATH}:${MAVEN_HOME}/bin  

 

 

 

接下來安裝jdk (建議jdk 別用yum 安裝,否則他不會配置 環境變數,我們在安裝svn的時候還需要自己手動在配一下)

mkdir /usr/java
tar -xzvf jdk-8u161-linux-x64.tar.gz -C  /usr/java/

然後配置jdk環境變數

vim /etc/profile 

最後一行新增

#java
JAVA_HOME=/usr/java/jdk1.8.0_161 #你jdk所在的目錄
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

然後安裝ESC鍵 輸入  回車儲存

:wq

檢視jdk是否安裝成功

java -version

會出現以下資訊

java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

接下來安裝svn

  1. 執行以下命令安裝SVN。

     
    1. yum install subversion
  2. 執行以下命令檢視SVN版本。

     
    1. svnserve --version
  3. 按以下步驟建立版本庫:

    1. 執行以下命令建立目錄。
       
      1. mkdir /var/svn
    2. 依次執行以下命令建立版本庫。
       
      1. cd /var/svn
      2. svnadmin create /var/svn/svnrepos
    3. 依次執行以下命令檢視自動生成的版本庫檔案。
       
      1. cd svnrepos
      2. ls
    4. 執行命令cd conf/進入conf目錄(該SVN版本庫配置檔案)。返回結果如下:
      • authz:是許可權控制檔案。
      • passwd:是賬號密碼檔案。
      • svnserve.conf:SVN服務配置檔案。
    5. 按以下步驟設定賬號密碼:
      1. 執行 vi passwd
      2. 按 i 鍵進入編輯模式。
      3. 在 [users] 塊中新增使用者賬號和密碼,格式:賬號=密碼,比如示例中的suzhan = redhat(注意等號兩端要有一個空格)。
      4. 按 Esc 鍵退出編輯模式,並輸入 :wq 儲存並退出。設定賬號密碼
    6. 按以下步驟設定許可權:
      1. 執行 vi authz
      2. 按 i 鍵進入編輯模式。
      3. 在末尾新增如下程式碼(其中,r表示讀,w表示寫):
         
        1. [/]
        2. suzhan=rw
      4. 按 Esc 鍵退出編輯模式,並輸入 :wq 儲存並退出。
        設定許可權
    7. 按以下步驟修改svnserve.conf檔案。
      1. 執行命令 vi svnserve.conf
      2. 按 i 鍵進入編輯模式。
      3. 開啟以下幾個註釋(注意每行不能以空格開始,等號兩端要有一個空格):
         
        1. anon-access = read #匿名使用者可讀,您也可以設定 anon-access = none,不允許匿名使用者訪問。設定為 none,可以使日誌日期正常顯示
        2. auth-access = write #授權使用者可寫
        3. password-db = passwd #使用哪個檔案作為賬號檔案
        4. authz-db = authz #使用哪個檔案作為許可權檔案
        5. realm = /var/svn/svnrepos #認證空間名,版本庫所在目錄
      4. 按 Esc 鍵退出編輯模式,並輸入 :wq 儲存並退出。修改svnserve.conf
    8. 執行以下命令啟動SVN版本庫。
       
      1. svnserve -d -r /var/svn/svnrepos
    9. 執行命令 ps -ef |grep svn 檢視SVN服務是否開啟。
      如果返回結果如下圖所示,表示SVN服務已經開啟。
      檢查SVN服務是否已開啟

注意
執行以下命令停止SVN命令。

 
  1. killall svnserve

新增安全組規則

SVN服務的預設埠為TCP 3690。您需要登入 ECS管理控制檯新增安全組規則 放行TCP 3690埠。

在Windows上測試

這部分說明如何從本地(Windows作業系統)訪問ECS例項上安裝的SVN服務。

  1. 在本地機器上安裝 TortoiseSVN客戶端

  2. 在您的本地專案資料夾(如示例中的C:\KDR),右鍵空白處彈出選單,選擇 SVN檢出SVN檢出

  3. 指定資源庫URL,格式為 svn://例項公網IP地址/資源庫名;指定 檢出至目錄(如本示例中的C:\KDR);再單擊 確定輸入SVN URL如果出現以圖所示資訊,表示檢出成功。

接下來安裝tomcat,回到之前apache-tomcat-8.5.29.tar.gz 所在目錄執行以下命令

 
tar -xzvf apache-tomcat-8.5.29.tar.gz -C /usr/local/

然後啟動tomcat

/usr/local/apache-tomcat-8.5.29/bin/startup.sh

http://ip:8080/  進行訪問

 

注意 埠需要到你伺服器控制檯 安全組新增

 

接下來就是安裝 jenkins 

回到之前jenkins 上傳的目錄,拷貝jenkins 到你的tomcat webapps目錄下

cp jenkins.war /usr/local/tomcat7/webapps/

重啟tomcat 訪問 jenkins

http://ip:8080/jenkins

啟動時間會有點長 ,登陸會讓你輸入密碼,密碼在哪裡網頁上有說明

然後輸入密碼後 讓你選擇外掛 我選的是推薦安裝的外掛,安裝完成後會少了maven外掛,需要安裝一個,不然在新建任務的時候沒有 maven選項

選擇可選外掛,輸入 Maven Integration plugin ,因為我安裝過了所以找不到,你們搜尋到了就之間點安裝

這一步好了 接下來配置jdk  和 maven  路徑

1.進入全域性工具配置

去掉自動安裝,填寫路徑

接下來新建任務

選擇丟棄構建 

配置svn

注意如果不知道怎麼建立 maven 專案 看這個教程 https://blog.csdn.net/wx5040257/article/details/77388086?locationNum=7&fps=1

 

配置 構建觸發器,我配置的是 ,只要我提交程式碼 2分鐘後幫我構建一次 ,poll scm 不知道配置去百度很多教程

好了下面最重要的一步來了  我是參考 https://blog.csdn.net/jesonjoke/article/details/77861888 這位大神寫的

說明一下,我有兩個tomcat   一個tomcat 放jenkins   一個放專案
以下指令碼的tomcat名字 是我放專案的tomcat,你們別把自己 jenkins 所在的tomcat名字寫在裡面

cd /usr/local/apache-tomcat-8.5.32/webapps/    #進入webapps 
rm -rf capital*				  #刪除之前的專案

port=`netstat -nlp | grep -w 8005 | sed -r 's#.* (.*)/.*#\1#'`

if [  -n "$port" ]; then
  kill -9 $port
fi 

tomcat=`ps -ef|grep apache-tomcat-8.5.32 | grep -v 'grep\|tail' | awk '{print $2}'`

if [  -n "$tomcat" ]; then
  kill -9 $tomcat
fi  
  
cd /root/.jenkins/jobs/capital/workspace/target/ #進入jenkins 打war包的路徑
cp capital.war /usr/local/apache-tomcat-8.5.32/webapps/  #拷貝專案到tomcat webapps
export BUILD_ID=capitalId              #這句話必須加 不然我tomcat 啟動不了,我也不知道原因,id是隨便取得
sh /usr/local/apache-tomcat-8.5.32/bin/startup.sh   啟動tomcat

好了jenkins 配置到此就結束了,你們可以立即構建試試

對了還要注意的是 你在構建之前  tomcat7 也就是專案所在的tomcat 一定要先啟動 不然 指令碼呢第一步kill tomcat 會報錯的。