• 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文件中(需要输入密码)
  • 相关阅读:
    Ubuntu 15.04 下apt-get安装JDK
    Ubuntu下apt-get安装Java,Tomcat
    虚拟化技术比较 PV HVM
    Java8 Lambda表达式教程
    SpringMVC实现上传和下载
    web.xml中的url-pattern映射规则
    java文件读写操作大全
    Java创建文件
    JAVA文件中获取路径及WEB应用程序获取路径方法
    session.flush()与session.clear()的区别及使用环境
  • 原文地址:https://www.cnblogs.com/SimpleWu/p/13262966.html
Copyright © 2020-2023  润新知