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目录
- 输入命令:cd .ssh进入rsa公钥私钥目录(清空旧秘钥)
- 在当前目录下执行ssh-keygen -t rsa,三次回车后生成新的公钥(id_rsa.pub)私钥(id_rsa)文件(每个节点都要重新生成)
- 在主节点上执行命令:cat id_rsa.pub >> authorized_keys把公钥内容拷贝到该文件中
- 登录其它节点,把其它节点的公钥都拷贝到主节点的authorized_keys文件中(需要输入密码)
栏 目:JAVA代码
本文标题:Jenkins Pipeline 部署 SpringBoot 应用的教程详解
本文地址:http://www.codeinn.net/misctech/14871.html
阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机