linux服务器java环境部署系列:搭建jenkins环境部署项目

JaminHuang      2022-05-17     251

关键词:

引言

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

系列文档目录

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

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

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

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

  Linux 服务器 Java环境部署系列(五):搭建RabbitMQ

搭建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 git@gitee.com

  • 复制/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、Git Parameter 依次点击:系统管理 -> 插件管理 -> 可选插件,输入插件名搜索插件,安装完重新登录下才能生效。

 

 项目部署

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

 

 

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

#!/bin/sh
echo [tags] ------------
echo [tags] 开始执行脚本
echo [tags] ------------

export BUILD_ID=dontKillMe
export PROJECT_NAME=springboot-demo
export NAME=demo
export JAR_NAME=demo-$branch

echo [INFO] "----------------------<          DIR          >----------------------"
echo [INFO] "项目Jar包存放路径 --> /data/module/$NAME/$branch"
JAR_PATH=/data/module/$NAME/$branch

[ ! -e $JAR_PATH ] && mkdir -p $JAR_PATH

echo [INFO] "本地项目存放路径 --> /var/lib/jenkins/workspace/$PROJECT_NAME/target"
JENKINS_JAR_PATH=/var/lib/jenkins/workspace/$PROJECT_NAME/target

[ ! -e $JENKINS_JAR_PATH ] && mkdir -p $JENKINS_JAR_PATH

echo [INFO] "备份Jar包存放路径 --> /data/module/$NAME/$branch/lib"
LIB_JAR_PATH=/data/module/$NAME/$branch/lib

[ ! -e $LIB_JAR_PATH ] && mkdir -p $LIB_JAR_PATH

echo [INFO] "日志文件路径 --> /data/module/$NAME/$branch/execute.log"
LOG_PATH=execute.log

echo [INFO] "清空临时目录"
rm -rf /var/lib/jenkins/tmp/$PROJECT_NAME/

TMP_PATH=/var/lib/jenkins/tmp/$PROJECT_NAME/

[ ! -e $TMP_PATH ] && mkdir -p $TMP_PATH

echo [INFO] "将jar包存入临时目录"
scp /var/lib/jenkins/workspace/$PROJECT_NAME/target/*.jar $TMP_PATH

process_id=$(ps -ef | grep demo-$branch | awk '{print $2}')

echo [INFO] "当前进程号 $process_id"
 
echo [INFO] "如果该项目正在运行,就杀死项目进程"
if [[ ! -z "$process_id" ]]
then
    kill -9 $process_id
else
    echo [INFO] "该项目未运行"
fi

cd ${JAR_PATH}

echo [INFO] "备份原有jar包到备份目录"
NOW_TIME=$(date "+%Y%m%d%H%M%S")
echo [INFO] "mv $JAR_NAME.jar $LIB_JAR_PATH/$JAR_NAME-$NOW_TIME.jar"
mv $JAR_NAME.jar $LIB_JAR_PATH/$JAR_NAME-$NOW_TIME.jar

echo [INFO] "本地项目拷贝到路径 scp $JENKINS_JAR_PATH/$JAR_NAME.jar $JAR_PATH"
scp $JENKINS_JAR_PATH/$JAR_NAME.jar $JAR_PATH

nohup java -jar ${JAR_NAME}.jar >$LOG_PATH &
 
echo [tags] ------------
echo [tags] 脚本执行完毕
echo [tags] ------------
 
echo [INFO] "代码部署版本"
echo [INFO] "version : $branch"
shell

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

   查看控制定输出日志

 

 

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

linux服务器java环境部署系列:安装gitmaven

引言  本文主要介绍Linux服务器下搭建Java环境的相关操作:安装git、maven。系列文档目录  Linux服务器Java环境部署系列(一):安装JDK  Linux服务器Java环境部署系列(二):安装nginx、mysql、tomcat、redis  Linux服务器Java环... 查看详情

linux如何搭建java部署环境(代码片段)

...0c;如:JDK,MySql,Tomcat等为什么是搭建Java部署环境,而不是开发环境?答:因为Java几乎不会在 查看详情

linux搭建环境+部署项目

参考技术A前期准备:准备一台服务器,我这里用的华为云,租的时候点按需计费就行,2核4G的大概0.5元/小时,搭建+部署项目大概不到1块钱吧。购买服务器步骤如下:配置环境变量在/etc/profile这个文件里面配置操作命令:vim/etc/... 查看详情

linux学习之阿里云服务器java开发环境的搭建

...直是在windows上面进行java开发,然后打成war包部署在linux服务器上面,linux服务器上面的正式环境和测试环境都是别人搭建好的,svn服务器也是别人搭建好的,抱着一种学习的心态的就去买了个阿里云服务器于是开始搭建java开发... 查看详情

linux系列之redis环境搭建

...-c++。搭建步骤第一步:把redis的源码上传到linux服务器。第二步:解压缩:tar-zxvfredis-3.0.0.tar.gz第三步:make第四步:makeinstallPRE 查看详情

elasticsearch系列部署

linux环境centOS6.8本文采用tar包的方式部署es准备jdk8的环境5.4.0的es依赖jdk8及以上版本下载linux版的jdk jdk-8u121-linux-x64.tar.gztar-zvxfjdk-8u121-linux-x64.tar.gz//修改环境变量vim/etc/profile//添加如下JAVA_HOME=/usr/java/jdk1.8.0_121ex 查看详情

ci/cd技术专题「jenkins实战系列」全流程介绍jenkins环境搭建+基础部署配置(windows->linux)(代码片段)

背景在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试;前后端分离后,经常会修改接口,然后重... 查看详情

rabbitmq消息队列系列教程windows下安装和部署rabbitmq

...本篇经验将和大家介绍Windows下安装和部署RabbitMQ消息队列服务器,希望对大家的工作和学习有所帮助!目录一、Erlang语言环境的搭建二、RabbitMQ服务环境的搭建三、RabbitMQ服务Web管理工具 一、Erlang语言环境的搭建RabbitMQ开源消... 查看详情

linux学习2-在阿里云服务器上部署禅道环境(代码片段)

...学习下如何在Linux上搭建禅道环境。环境准备:1.一台Linux服务器,操作系统:CentOS7.464位2.Xshell5.03.Xftp5.04.ZenTaoPMS.9.8.3.zbox_64.tar.g 查看详情

linux部署(代码片段)

Linux部署搭建环境部署搭建环境#环境准备的所有命令yuminstall-ygit#安装gityuminstall-yjava-1.8.0-openjdk-devel#安装jdk8yuminstall-ymaven#安装mavenyuminstall-ymariadb-server#安装mysql服务器systemctlstartmariadb#启动mysql服务器systemctlenable 查看详情

jenk×××使用入门(代码片段)

...×.io/zh/doc/book/×××talling/推荐下载war文件,只要安装过java环境linux和Windows都可以使用使用方法java-jarjenk×××.war选择默认安装插件,配置邮件发送1,Jenk×××Location2,ExtendedE-ma 查看详情

linux系列手动命令安装软件和服务器基本环境搭建(代码片段)

软件安装方式和服务器基本环境搭建1、安装jdk1.1、jdk下载地址1.2、安装jdk1.3、测试发布打包项目2、安装tomcat2.1、官网下载tomcat2.2、解压tomcat,并启动访问1、安装jdk1.1、jdk下载地址jdk8rpm安装包官网下载地址(需要先注册... 查看详情

ruoyi前后端分离式开源项目实战部署总结-环境搭建准备工作(代码片段)

...视频教程了。这一系列文章主要分为两部分:前期的环境搭建——软件安装+Linux节点搭建开源项目下载及部署集群+ 查看详情

spark入门实战系列--2.spark编译与部署(上)--基础环境搭建

...实际应用一般使用64位操作系统,内容分为三部分:基础环境搭建、Hadoop编译安装和Spark编译安装,该环境作为后续实验基础;3、文章演示了Hadoop、Spark的编译过程,同时附属资源提供了编译好的安装包,觉得编译费时间可以 查看详情

如何把java程序部署到linux系统下

...java编译成*.class文件只需要虚拟机的支持,你只要在linux环境下装一个jdk就OK了,然后配置一下环境变量。然后java的class文件或者打包好的*.jar文件考到linux目录下就可以用了.参考技术Ajava当初宣传的时候最牛逼的一句话就是:Write... 查看详情

linux系列购买学生云服务器及服务器环境部署(代码片段)

1、云服务器购买学生或者24岁以下购买都有优惠,直接百度搜索阿里云学生云服务器即可。注册账号登录找到新人专享区域,选择想要的服务器类型(一般轻量级2核2G的就足够用了)点击购买(选择地区和镜... 查看详情

大数据学习系列之一-----hadoop环境搭建(单机)

一、环境选择1,服务器选择阿里云服务器:入门型(按量付费)操作系统:linuxCentOS6.8Cpu:1核内存:1G硬盘:40Gip:39.108.77.2502,配置选择JDK:1.8(jdk-8u144-linux-x64.tar.gz)Hadoop:2.8.2(hadoop-2.8.2.tar.gz)3,下载地址官网地址:JDK:http://www.oracle.com/te... 查看详情

精通linux系列linux下常用安装服务软件源码编译安装方式与实战部署jdk环境(代码片段)

🚀作者:“大数据小禅”🚀专栏简介:本专栏主要分享Linux技术,会涉及到常用的Linux命令操作,常用的服务部应用署以及相关运维知识,还有一些Linux系统的深层解析,Linux系列专栏地址,欢... 查看详情