Jenkins Pipeline 部署 SpringBoot 應用


一. 安裝依賴包
yum install -y wget
yum install -y gcc-c++
yum install -y zlib-devel perl-ExtUtils-MakeMaker
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
yum install -y openssh-clients
yum install -y fontconfig
二. 環境准備

1.安裝JAVA環境

yum -y install java-1.8.0-openjdk
#檢測是否安裝成功
java -version

修改/etc/profile文件,添加JAVA_HOME

vi /etc/profile
在文件的最后面,加上以下代碼
export JAVA_HOME=/java/jdk1.8.0_171
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

在執行完保存過后,必須執行以下source /etc/profile,重置文件,讓它生效。

2.安裝Maven

#下載
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz
#解壓改名移動目錄
tar zxf apache-maven-3.1.1-bin.tar.gz 
mv apache-maven-3.1.1 /usr/local/maven3

vi /etc/profile然后還需要 配置環境變量。 #在適當的位置添加

export M2_HOME=/usr/local/maven3
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin

保存退出后運行下面的命令使配置生效,或者重啟服務器生效。

source /etc/profile

驗證版本

mvn -v

出現maven版本即成功

阿里雲源

<mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
</mirrors>
三. 安裝Jenkins部署SpringBoot應用

rpm方式安裝:

sudo wget  https://pkg.jenkins.io/redhat-stable/jenkins-2.164.1-1.1.noarch.rpm
sudo rpm -ivh jenkins-2.164.1-1.1.noarch.rpm
#重載服務(由於前面修改了Jenkins啟動腳本)
sudo systemctl daemon-reload

#啟動Jenkins服務
sudo systemctl start jenkins

#將Jenkins服務設置為開機啟動
#由於Jenkins不是Native Service,所以需要用chkconfig命令而不是systemctl命令
sudo /sbin/chkconfig jenkins on

war包方式:

修改Jenkins默認用戶:

vi /etc/sysconfig/jenkins
#修改為Root用戶
JENKINS_USER="root"
#給用戶授權
sudo chown -R root /var/log/jenkins
sudo chgrp -R root /var/log/jenkins
sudo chown -R root /var/lib/jenkins 
sudo chgrp -R root /var/lib/jenkins
sudo chown -R root /var/cache/jenkins
sudo chgrp -R root /var/cache/jenkins

直接將War包上傳到服務器運行即可。

nohup java -jar jenkins.war >jenkins.log 2>&1 &

運行后訪問localhost:8080即可。

進入界面后需要輸入一串密碼在服務器查看即可:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

進入之后創建好自己的用戶名與密碼,跳過所有下載。

登陸之后進入Manage Jenkins -> Global Tool Configuration 中進行配置Maven,Git,JDK

四. 新建Pipeline 項目

配置Git倉庫:

腳本路徑是指代碼拉下的jenkins_files目錄里面的01_eureka文件。·

node {
   def mvnHome
   def workspace = pwd()
   def project_name = 'eureka-server-1.0.0.jar'
   def project_log = 'eureka-server-1.0.0.log'
   def project_home = 'app-centre/eureka-server'
   def vm_ip = 'xxx.xxx.xxx.xxx'
   def vm_port = '22'
   def vm_user = 'root'
   //代碼獲取
   stage('Preparation') { // for display purposes
	  git branch: 'dev',
	  url:'https://xxxxxxx.git'
   }
   //構建
   stage('Build') {
      // Run the maven build
      if (isUnix()) {
         sh "mvn -Dmaven.test.skip=true clean package"
 
      } else {
         bat(/mvn -Dmaven.test.skip=true clean package/)
      }
   }
   
   //移動
   stage('MV') {
     sh "mv ${project_home}/target/${project_name} /usr/local/src/"
   }
   
   //上傳到服務器
   stage('Upload VM') {
     sh "scp -P ${vm_port} /usr/local/src/${project_name} ${vm_user}@${vm_port}:/usr/local/src/bk"
	 //sh "ssh -p ${vm_port} ${vm_user}@${vm_ip} 'nohup java -jar /usr/local/src/${project_name} >> ${project_log} '"
   }
   
   
  //運行JAR包
  stage('Run') {
	 //sh "if (ps -ef| grep java|grep ${project_name})then (ps -ef| grep java|grep ${project_name}| awk '{print \$2}'|xargs kill -9) fi"
     sh "ssh -p ${vm_port} ${vm_user}@${vm_ip} 'nohup java -jar /usr/local/src/${project_name} >${project_log} 2>&1 &'"
  }
}

腳本步驟為

1.Preparation 拉取代碼

2.Build 編譯打包

3.MV 移動到指定目錄

4.Upload VM 上傳 jar包到虛擬機

5.Run 運行遠程服務器Jar包

注意事項:

需要在腳本上直接將Jar上傳到服務器必須配置ssh公鑰私鑰,配置步驟為:

進入服務器Root目錄

  1. 輸入命令:cd .ssh進入rsa公鑰私鑰目錄(清空舊秘鑰)
  2. 在當前目錄下執行ssh-keygen -t rsa,三次回車后生成新的公鑰(id_rsa.pub)私鑰(id_rsa)文件(每個節點都要重新生成)
  3. 在主節點上執行命令:cat id_rsa.pub >> authorized_keys把公鑰內容拷貝到該文件中
  4. 登錄其它節點,把其它節點的公鑰都拷貝到主節點的authorized_keys文件中(需要輸入密碼)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM