Jenkins安裝部署

1. Jenkins下載安裝及初始化

  1. 下載Jenkins軟件:https://jenkins.io/download/,選擇war包即可。

    

     2. 啓動

java –jar Jenkins.war

或放到tomcat中運行

注意:windows下默認的路徑爲C:\Users\${用戶名} \.jenkins, linux下則爲root/.jenkins

     3. 初次啓動時,Jenkins會讓你輸入一個密碼,這個密碼是Jenkins自動爲你生成的,密碼所在的文件頁面上會有具體文件的目錄說明。找到文件輸入密碼即可。

     4.  接下來就到了插件安裝的界面,新手的話,直接點推薦安裝就行。

注意:這個時候可能還會出現無法聯網的問題,新開一個標籤頁,輸入網址http://localhost:8080/pluginManager/advanced把最下面的升級站點改成http的即可http://updates.jenkins.io/update-center.json然後在服務列表中關閉jenkins,再啓動,這樣就能正常聯網了。

      5. 接下來就是設置個用戶正常下一步就行了

2. Jenkins環境配置

    1. JDK配置

    2. Git配置

    3. Maven配置

3. Jenkins+git+maven實現自動化部署

4. 創建任務

    1. 回到Jenkins的首頁,點擊創建一個新任務

    

    2. 創建新任務的頁面如下圖所示,由於我們的項目是maven項目,最終的頁面中應該會有一個【構建一個Maven項目】的選項,而當前頁面沒有這個的選項,是因爲我們還沒有安裝maven的部署打包的插件,那就需要先安裝好maven的插件

    3. 進入插件管理的頁面,首先將選項卡切換到【可選插件】,之後在右上角文本框中輸入Maven Integration plugin (這個名稱在不同版本的Jenkins中可能會不一樣,那就輸入一個maven進行搜索,然後找到對應的插件即可),篩選出這個插件,然後選擇此插件,點擊下方的【直接安裝】

    4. 插件安裝成功後,點擊【返回首頁】,至此,Jenkins所需的Maven打包構建的插件已經安裝完畢。

    5. 回到任務頁面,此時開始新建任務

    

5. Git配置

    

    1. 由於項目是git項目,故需要在【源碼管理】區域選擇“Git”,下面的Branch Specitials 的地方,默認是master分支,如果你的項目默認不是master分支,就需要改成對應的分支名稱。

        

    2. 勾選構建環境標籤頁的Add timestamps to the Console Output,如下圖

    3. 然後在Build中做如下設置

    

    4. 此時你可以測試一下是否能從git下拉取項目代碼,並自動打包。回到自己創建的任務,點擊立即構建,可以看到下方會出現一個新的進度條。

    5. 點擊進度名後面的倒三角形,然後點擊控制檯輸出,即可看到項目構建的日誌信息

如果報錯了,請自行查找原因並且去解決。

6. 利用Publish Over SSH 實現遠程部署

    1. 首先安裝SSH以及 publish Over SSH插件

    2. SSH配置,【首頁】--【系統管理】—【系統設置】找到Pubilsh Over SSH

    3. 點擊高級選項,填寫如下數據

    4. 點擊test按鈕,顯示success則爲成功

    5. 自動化部署配置

因爲Publish Over SSH 的執行順序是先上傳文件再執行腳本,所以這邊就執行兩步腳本,關閉服務,備份,刪除舊版,然後啓動新文件

    6. 點擊Add Transfer Set,新增一組設置:

 注意:包位置是相對路徑,相對的是jenkins工作路徑\任務名,例如:

而全路徑則爲:

所以填寫cheng-admin\target\admin.jar即可,至此,已經全部完成,請自行測試。

 

附:執行的shell腳本

#!/bin/sh
## java env
export JAVA_HOME=/usr/local/jdk1.8.0_101
export JRE_HOME=$JAVA_HOME/jre

## exec shell name
EXEC_SHELL_NAME=$1\.sh
## service name
SERVICE_NAME=$1
SERVICE_DIR=/opt
JAR_NAME=$SERVICE_NAME\.jar
PID=pid/$SERVICE_NAME\.pid
WORK_DIR=$SERVICE_DIR/springboot

#function start
start(){
  cd $WORK_DIR
  if test ! -d "log" ; then
    mkdir log
  fi
  nohup $JRE_HOME/bin/java -Xms256m -Xmx512m -jar $JAR_NAME > log/$SERVICE_NAME.out 2>&1 &
  echo $! > $SERVICE_DIR/$PID
  echo "#### start $SERVICE_NAME"
}

# function stop
stop(){
  cd $WORK_DIR
  if test -f "$SERVICE_DIR/$PID" ; then
    kill `cat $SERVICE_DIR/$PID`
    rm -rf $SERVICE_DIR/$PID
  fi
  echo "#### stop $SERVICE_NAME"
  sleep 6
  TEMP_PID=`ps -ef | grep -w "$SERVICE_NAME" | grep "java" | awk '{print $2}'`
  if test "$TEMP_PID" == "" ; then
    echo "#### $SERVICE_NAME process not exists or stop success"
  else
    echo "#### $SERVICE_NAME process pid is:$TEMP_PID ."
    kill -9 $TEMP_PID
  fi
}

# function clean
clean(){
  cd $WORK_DIR
  if test ! -d "lastDeploy" ; then
    mkdir lastDeploy
  else
    rm lastDeploy/$SERVICE_NAME*
  fi
  if test -f "$JAR_NAME" ; then
    mv $JAR_NAME lastDeploy
  fi
}

case "$2" in

start)
  start
;;

stop)
  stop
;;

restart)
  stop
  sleep 2
  start
  echo "#### restart $SERVICE_NAME"
;;

clean)
  stop
  sleep 2
  clean
  echo "#### clean $SERVICE_NAME"
;;

*)
  ## restart
  stop
  sleep 2
  start
;;

esac
exit 0

 

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