小言_互联网的博客

Linux CentOS springboot jenkins+maven+git实现可持续自动打包部署

404人阅读  评论(0)

jdk环境:1.8

linux版本:CentOS 6.10

git版本:2.1.1

maven版本:3.5.4

预先准备jdk

一、安装部署jenkins

1、下载rpm文件:

2、上传到服务器并安装

3、修改jenkins端口(默认8080)

4、启动和重启jenkins

5、访问jenkins

6、安装插件和创建用户

二、安装部署maven

1、下载、解压、移动、删除安装包

2、设置环境变量

3、查看maven版本:mvn -v

三、安装部署Git

1、下载并安装

2、添加git到环境变量

3、查看git版本及所在路径 git --version

四、jenkins部署maven项目

1、安装所需插件:Git plugin、Maven Integration plugin

2、全局工具配置

3、凭据(配置git的用户名和密码,或者ssh)

4、创建一个maven项目

5、maven项目构建详细配置

6、最后点击应用保存 执行

7、注意事项


一、安装部署jenkins

1、下载rpm文件:

  下载地址:http://mirrors.jenkins-ci.org/redhat/

该示例下载的是 jenkins-2.222-1.1.noarch.rpm

网站上直接下载可能会比较慢 可点击此处在csdn下载 jenkins-2.222-1.1.noarch.rpm

2、上传到服务器并安装

rpm -ivh jenkins-2.222-1.1.noarch.rpm

3、修改jenkins端口(默认8080)

vim /etc/sysconfig/jenkins

   

4、启动和重启jenkins


  
  1. service jenkins start
  2. service jenkins restart

  启动如若报错:Starting Jenkins bash: /usr/bin/java: No such file or directory(没有找到java)

  解决方案:vim  /etc/init.d/jenkins 添加jdk路径

   

5、访问jenkins

 访问地址:http://ip:6060

 首次进入会出现以下内容

 

cat /var/lib/jenkins/secrets/initialAdminPassword

  按照提示去服务器上复制密码粘贴到输入框中登录

6、安装插件和创建用户

 首次登录成功后会进入安装插件页面和创建用户页面,插件安装推荐的就行,其他的按照指引一步一步操作

(如果你jenkins不是中文的,安装两个插件:Locale和Localization: Chinese,然后在系统管理->系统配置里Locale的默认语言改为zn_CN)


二、安装部署maven

1、下载、解压、移动、删除安装包


  
  1. wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
  2. tar zxf apache-maven-3.5.4-bin.tar.gz
  3. mv apache-maven-3.5.4 /usr/ local/maven
  4. rm -f apache-maven-3.5.4-bin.tar.gz

2、设置环境变量

 vim /etc/profile 在最底下添加下面两行


  
  1. export M2_HOME=/usr/ local/maven
  2. export PATH= $PATH: $JAVA_HOME/bin: $M2_HOME/bin

  保存后执行  source /etc/profile

3、查看maven版本:mvn -v

 出现以下内容即安装成功

 


三、安装部署Git

1、下载并安装


  
  1. yum -y install libcurl-devel expat-devel curl-devel gettext-devel openssl-devel zlib-devel
  2. yum -y install gcc perl-ExtUtils-MakeMaker
  3. cd /usr/ local/src/
  4. wget https://mirrors.edge.kernel.org/pub/software/scm/git/git -2.1 .1.tar.gz
  5. tar -zvxf git -2.1 .1.tar.gz
  6. cd git -2.1 .1
  7. make prefix=/usr/ local/git all
  8. make prefix=/usr/ local/git install

2、添加git到环境变量


  
  1. echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
  2. source /etc/bashrc

3、查看git版本及所在路径 git --version


四、jenkins部署maven项目

1、安装所需插件:Git plugin、Maven Integration plugin

2、全局工具配置

jdk路径:/usr/local/jdk1.8.0_221/ (jdk安装的实际路径)

git路径:/usr/local/git/bin/git

maven路径:/usr/local/maven

3、凭据(配置git的用户名和密码,或者ssh)

这里以用户名和密码为例

(ssh需要服务器生成公私钥,然后在相关的git远程仓库配置公钥,最后再把私钥按照下方例子选择ssh添加到Private Key)

如图所示按照顺序添加git账户和密码

4、创建一个maven项目

源码管理 输入远程仓库地址并选择刚配置好的凭据

构建触发器和构建环境

5、maven项目构建详细配置

Root POM为:pom.xml

Goals and options输入:clean package -Dmaven.test.skip=true

(-Dmaven.test.skip=true 可选 代表不执行测试用例,也不编译测试用例类。)

Post Steps选择第一个Run only if build succeeds(仅在构建成功时执行)

Execute shell输入:


  
  1. BUILD_ID=DONTKILLME
  2. sudo cp /var/lib/jenkins/workspace/ test-admin/target/ test-admin-0.0.1-SNAPSHOT.jar /home/admin/data/package/ test-admin-0.0.1-SNAPSHOT.jar
  3. sudo nohup /home/admin/data/sh/ test-admin.sh restart 2>&1 &

构建完可在/var/lib/jenkins/workspace/可查看具体构建的项目,在相关的target目录下找到需要启动的jar包 然后执行启动脚本

/home/admin/data/sh/test-admin.sh 为自动部署脚本 内容为:


  
  1. #!/bin/bash
  2. #修改为jar包实际路径
  3. SpringBoot=/home/admin/data/package/ test-admin-0.0.1-SNAPSHOT.jar
  4. if [ "$1" = "" ];
  5. then
  6. echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m"
  7. exit 1
  8. fi
  9. if [ "$SpringBoot" = "" ];
  10. then
  11. echo -e "\033[0;31m 未输入应用名 \033[0m"
  12. exit 1
  13. fi
  14. function start()
  15. {
  16. count=`ps -ef |grep java|grep $SpringBoot|grep -v grep|wc -l`
  17. if [ $count != 0 ]; then
  18. echo "$SpringBoot is running..."
  19. else
  20. echo "Start $SpringBoot success..."
  21. #nohup java -jar $SpringBoot > /dev/null 2>&1 &
  22. nohup /usr/ local/jdk1.8.0_221/bin/java -jar $SpringBoot --spring.profiles.active= test > /home/admin/data/logs/ test-admin/catalina.out 2>&1
  23. fi
  24. }
  25. function stop()
  26. {
  27. echo "Stop $SpringBoot"
  28. boot_id=`ps -ef |grep java|grep $SpringBoot|grep -v grep|awk '{print $2}'`
  29. count=`ps -ef |grep java|grep $SpringBoot|grep -v grep|wc -l`
  30. if [ $count != 0 ]; then
  31. kill $boot_id
  32. count=`ps -ef |grep java|grep $SpringBoot|grep -v grep|wc -l`
  33. boot_id=`ps -ef |grep java|grep $SpringBoot|grep -v grep|awk '{print $2}'`
  34. kill -9 $boot_id
  35. fi
  36. }
  37. function restart()
  38. {
  39. stop
  40. sleep 2
  41. start
  42. }
  43. function status()
  44. {
  45. count=`ps -ef |grep java|grep $SpringBoot|grep -v grep|wc -l`
  46. if [ $count != 0 ]; then
  47. echo "$SpringBoot is running..."
  48. else
  49. echo "$SpringBoot is not running..."
  50. fi
  51. }
  52. case $1 in
  53. start)
  54. start;;
  55. stop)
  56. stop;;
  57. restart)
  58. restart;;
  59. status)
  60. status;;
  61. *)
  62. echo -e "\033[0;31m Usage: \033[0m \033[0;34m sh $0 {start|stop|restart|status} {SpringBootJarName} \033[0m
  63. \033[0;31m Example: \033[0m
  64. \033[0;33m sh $0 start esmart-test.jar \033[0m"
  65. esac

6、最后点击应用保存 执行

第二列:乌云和太阳的图标代表最近构建的情况

查看具体执行情况时可查看控制台日志

当执行结果为Finished: SUCCESS即代表成功,最后再去确认下项目是否获取最新代码并重启了

7、注意事项

可能会因为jenkins没有sudo权限而执行失败

解决方案 切换为root用户 在/etc/sudoers找到 ## Same thing without a password 然后在下方添加

jenkins   ALL=(ALL)       NOPASSWD: ALL

具体步骤:


   
  1. su - root
  2. chmod u+w /etc/sudoers
  3. vim /etc/sudoers
  4. #添加
  5. jenkins   ALL=(ALL)       NOPASSWD: ALL
  6. chmod u-w /etc/sudoers

或者直接改变jenkins用户

vim /etc/sysconfig/jenkins   找到JENKINS_USER="jenkins"

将JENKINS_USER="jenkins"改为JENKINS_USER="root"

JENKINS_USER="root"

重启:service jenkins restart


转载:https://blog.csdn.net/q854214434/article/details/106124396
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场