Linux 服务器 Java环境部署系列(四):搭建jenkins环境、部署项目

引言

  本文主要介绍Linux服务器中常用跳板机jenkins,进行远程编译部署的环境搭建。

系列文档目录

  Linux 服务器 Java环境部署系列(一):安装JDK

  Linux 服务器 Java环境部署系列(二):安装nginx、mysql、tomcat、redis

  Linux 服务器 Java环境部署系列(三):安装git、maven

  Linux 服务器 Java环境部署系列(四):搭建jenkins环境、部署项目

搭建jenkins

  安装jenkins,采用从远程在线下载安装的形式,完成后还需要对相应配置进行修改。

安装步骤

  • 下载:wget https://pkg.jenkins.io/redhat-stable/jenkins-2.176.3-1.1.noarch.rpm
  • 安装:rpm -ivh jenkins-2.176.3-1.1.noarch.rpm
  • 修改配置文件:vim /etc/sysconfig/jenkins
    • jenkins 默认端口为 8080 (建议修改,以免对tomcat等端口产生冲突)
    • user改为root
  • 修改Jenkins的jdk目录:
    • 查看jdk安装位置:whereis jdk
    • 编辑初始化配置文件(添加jdk目录):vim /etc/init.d/jenkins
    • 保存修改:systemctl daemon-reload
  • 启动 jenkins:systemctl start jenkins
  • 查看密码(初次启动时需要):cat /var/lib/jenkins/secrets/initialAdminPassword

jenkins与码云

  jenkins可以和GitHub、Gogs、码云等常用git项目管理网站进行远程部署,本文以码云为例,其他也大同小异。

  • git config --global user.name "[你的用户名]"
  • git config --global user.email "[你的邮箱]"
  • ssh-keygen -t rsa -C "[你的邮箱]" (默认Enter就行)
  • 查看生成的公钥:tail /root/.ssh/id_rsa.pub
  • 查看是否连接成功:ssh [email protected]

  • 复制/root/.ssh/id_rsa.pub里的内容,到码云进行配置ssh公钥

  在gitee中依次点击:设置 -> 安全设置 -> ssh公钥,将公钥中的内容复制到公钥文本框中,随便写一个标题即可

系统配置

  访问Jenkins控制台地址,外网服务器使用公有ip:http://服务器ip:8888/,初始密码在:/var/lib/jenkins/secrets/initialAdminPassword 

   选择“Install suggested plugins”安装默认的插件,下面Jenkins就会自己去下载相关的插件进行安装。 

 

   创建超级管理员账号,可以直接跳过,如果遇到403的情况,返回重新尝试下

 

   系统管理-->配置全局工具配置(如果服务器安装了maven、jdk,去掉自动安装,选择自己服务器安装目录)-->点击保存,我这儿是已经在服务器安装好了的。

 

   系统管理-->插件管理(安装好需要的插件)

  因为前面推荐安装了部分,再安装几个比较好用的Jenkins插件:Rebuilder、Safe Restart、Publish Over SSH、Maven Integration 依次点击:系统管理 -> 插件管理 -> 可选插件,输入插件名搜索插件,安装完重新登录下才能生效。

 

 项目部署

  在Jenkins主页点击<创建一个新任务>,然后输入任务名,选择构建一个maven项目,注意:只有安装了Maven Integration插件才有这个选项

 

 

   使用shell自动编译项目成jar方式,根据实际项目情况写

#!/bin/sh
echo "========== Start shell mv and build ============"
 
# 在jenkins环境中一定要加这句话,否则这个脚本进程最后会被杀死
export BUILD_ID=dontKillMe
 
# 指定最后编译好的jar的存放位置
JAR_PATH=/data/module/demo
 
# 如果路径不存在,就创建路径
[ ! -e $JAR_PATH ] && mkdir -p $JAR_PATH
 
# 指定jenkins中存放编译好的jar的位置
JENKINS_JAR_PATH=/var/lib/jenkins/workspace/springboot-demo/target
 
# 如果路径不存在,就创建路径
[ ! -e $JENKINS_JAR_PATH ] && mkdir -p $JENKINS_JAR_PATH
 
# 指定jenkins中存放编译好的jar的名称(这个jar的名字和pom文件配置有关)
JENKINS_JAR_NAME=demo-1.0.0.jar
 
# 获取该项目的进程号,用于重新部署项目前杀死进程
process_id=$(ps -ef | grep elim-church | awk '{print $2}')
 
# 如果该项目正在运行,就杀死项目进程
if [[ ! -z "$process_id" ]]
then 
    echo "========== Stop Service ============"
    kill -9 $process_id
    echo "========== Restart Service ============"
else 
    echo "========== Service is not Start ============"
fi
 
# 进入Jenkins中编译好的jar的位置
cd ${JENKINS_JAR_PATH}
 
# 将Jenkins中编译好的jar复制到最终存放项目jar的位置
cp $JENKINS_JAR_PATH/$JENKINS_JAR_NAME $JAR_PATH
 
# 进入到存放项目jar的位置
cd ${JAR_PATH}
 
# 后台启动项目,并且将控制台日志输出到nohup.out中
 
nohup java -jar ${JENKINS_JAR_NAME} >execute.log &
 
echo "========== End shell mv and build ============"
 
echo "shell脚本执行完毕"

  保存后,进到该maven项目下,点击立即构建,构建失败的话可以先清理下工作空间

   查看控制定输出日志

 

 

   然后到阿里云服务器使用netstat -nltp查看是否有已经成功运行的项目,这儿的端口是springboot的application.properties一样的端口。

猜你喜欢

转载自www.cnblogs.com/huanghzm/p/12191326.html
今日推荐