Jenkins部署

本文详细介绍了如何在Linux环境中安装Jenkins,包括删除自带JDK、安装OpenJDK11、配置Jenkins服务、安装Maven和Node.js,以及部署后端和前端项目,还涉及Webhooks自动构建和定时任务的自动化部署。
摘要由CSDN通过智能技术生成

官网:Jenkins

技术文档:http://t.csdnimg.cn/73joH

部署位置:192.168.1.200:8080

账号密码:lei\lei19960711

原理图:

1. 系统要求

最低推荐配置:

  • 256MB可用内存
  • 1GB可用磁盘空间(作为一个Docker容器运行jenkins的话推荐10GB)
  • Java 8—无论是Java运行时环境(JRE)还是Java开发工具包(JDK)都可以。

注:最新版jenkins: 2.450,要求必须是jdk11

  • 已安装git,安装命令:yum install git

2. 安装jdk

2.1 删除自带的jdk

在我们安装linux虚拟机时可能会自带安装一个jdk,这时候如果想要干净方便的删除jdk的话可用以下方法

  • 先查看自带的jdk有几个,用命令:

rpm -qa | grep -i java 意思是查询所安装的带有java的rpm软件包。

  • 去删除,命令如下:

rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

解释:

    • rpm -qa:查询所安装的所有rpm包
    • grep -i:忽略大小写
    • xargs -n1:表示每次只传递一个参数
    • rpm -e --nodeps:强制卸载软件
  • 编辑profile文件,去除环境变量配置

vim /etc/profile

然后 source命令让修改后的profile文件立即生效 source /etc/profile

  • 最后可以再用命令: 查看是否还在即可

rpm -qa | grep -i java 或者查看java版本 java -version

2.2 安装openjdk11

yum install -y java-11-openjdk

3. Jenkins安装

jenkins安装包:http://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/

# 安装rmp包
rpm -ivh /root/jenkins-2.450-1.1.noarch.rpm

# 启动jenkins服务
systemctl start jenkins.service 
# 开机自启jenkins
systemctl enable jenkins.service
# 查看jenkins状态
systemctl status jenkins.service
# 查看jenkins启动日志
journalctl -u jenkins.service
  • jenkins默认端口为8080,假使端口冲突,可采取以下方式更换默认端口号
    • systemctl status jenkins.service:找到jenkins.service的位置

    • vi /usr/lib/systemd/system/jenkins.service
    • 修改:Environment="JENKINS_PORT=xxxx"
  • 登录web端:(http://192.168.1.200:8080)

可在提示的目录下找到初始密码

cat /var/lib/jenkins/secrets/initialAdminPassword

  • 进入插件安装选择

安装插件有坑,特此记录:

    1. 之前采用docker安装jenkins,但是版本太低,以至于插件太新,所以下载不了,故手动安装最新版本jenkins
    2. 按照网上说的配置了清华镜像,没有卵用,连着家里的wifi,亲测可直接下载插件
  • 设置用户名、密码、邮箱 => 成功登录

4. 前置环境配置

4.1 安装maven

  • 官网下载maven包

maven 官网地址:Maven – Download Apache Maven

  • 下载完成后,上传到 linux
  • 创建maven 安装目录
mkdir -p /usr/local/maven
chmod 777 /usr/local/maven
  • 解压 maven 安装包到 maven 文件夹
tar -zxvf apache-maven-3.8.5-bin.tar.gz -C /usr/local/maven
  • 创建 maven 资源库目录
mkdir -p /m2/repository
  • 替换settings.xml 文件,配置淘宝镜像

其位于:/usr/local/maven/apache-maven-3.9.6/conf

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">

  <localRepository>/m2/repository</localRepository>

  <pluginGroups>
  </pluginGroups>

  <proxies>    
  </proxies>

  <servers>
  </servers>

  <mirror>
    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>阿里云公共仓库</name>
    <url>https://maven.aliyun.com/repository/public</url>
  </mirror>
</mirrors>

  <profiles>
  </profiles>
</settings>
  • 添加maven环境变量
vi /etc/profile
# 添加以下内容
MAVEN_HOME=/usr/local/maven/apache-maven-3.9.6
PATH=$MAVEN_HOME/bin:$PATH
export MAVEN_HOME PATH

# 配置文件重新生效
source/etc/profile

# 测试成功与否
mvn -v

4.2 安装node

参考教程:http://t.csdnimg.cn/whnG0

  • 下载安装node

这里踩了个坑:因为高版本的node需要升级make等,经尝试失败,所以我下载的是14.17.0版本

  • 解压node到/usr/local/node
tar -zxvf node-v14.17.0-linux-x64.tar.gz -C /usr/local/node
  • 创建软连接
ln -s /usr/local/node/node-v14.17.0-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/node/node-v14.17.0-linux-x64/bin/npm /usr/local/bin/npm
  • 创建环境变量
vi /etc/profile
# 输入以下内容
export NODE_HOME=/usr/local/node/node-v14.17.0-linux-x64/bin/
export PATH=$PATH:$NODE_HOME:/usr/local/bin/

# 配置文件重新生效
source/etc/profile

5. Jenkins部署后端服务

5.1 下载maven插件

点击Manage Jenkins => Plugins => Available plugins

网络正常的情况下,会在最后显示插件的下载进程

Manage Jenkins => Tools ,配置maven的环境变量

5.2 下载配置Publish Over SSH插件

其可以简单理解为是通过SSH连接其他Linux机器,远程传输文件及执行Shell命令

搜索插件,并下载安装

假定想链接的服务器ip为192.168.1.100,配置过程如下:

点击Manage Jenkins => System进入全局系统配置

找到Publish over SSH => 点击SSH Servers“新增”

其中Hostname即为目标服务器的ip地址、Username即为用户名

点击高级 => 勾选“Use password authentication...”即可输入密码

点击“Test Configuration”可测试能否链接成功

5.3 新建maven项目

新建Item => 选择第二个:构建一个maven项目(前提是执行了5.1所述)

接下来就是最重要的Configure,下面仅以最基本的配置举例:

源码管理中,配置git仓库地址;指定克隆分支

构建触发器,勾选当子依赖的快照版本被build时,也会触发其构建

在Build中指定pom.xml文件

在Post Steps中点击Add post-build step

在弹出的虚框中配置目标服务器

Name的下拉列表即为5.2中配置的服务器列表

Source files:需要发送给目标服务器的文件,可采取通配符的方式,下面的表达式为根目录(/var/lib/jenkins/workspace/)下及其子级的中以main开头的jar包

Remove prefix: 目录结构是相对于基目录(通常是工作区)创建的。通常不希望在服务器上创建这些文件的完整路径。这是可以利用它进行剔除。

Remote directory: 传输文件的目标地址(前面不必加root,因为以root登录,就会自动传递到root下的xxx)

Exec command: 传输任何文件后,将在远程服务器上执行此命令。

最后点击保存,即可创建一个job,点击右侧的三角即可执行任务

点击图标可以查看控制台输出

目标服务器已经开始打印日志,说明部署成功

6. Jenkins部署前端项目

前端部署需要node,经验证高版本的node一般情况下需要更新make,gcc和glibc

不知道是什么原因我没成功,而且也有大神说不建议更新,怕破坏虚拟机,所以我就不再尝试了,具体操作可参考

http://t.csdnimg.cn/Z7ACA

这里我使用的是node14.17.0版本,经验证,可不必更新make等版本

新建一个Freestyle project任务即可

类似于按照部署后端项目,配置源码管理后,可增加构建步骤,选择Execute shell,以shell脚本的方式部署

下面的例子执行了以下逻辑:

进入到zz-admin-web前端项目的工作空间,配置淘宝镜像,然后引入依赖

随后build打包为静态文件,并打包为web.tar.gz

接下来就是将打包好的静态文件,发送至目标服务器,同样在构建后操作中选择Send build artifacts over SSH

下述配置的主要逻辑为:将打包好的tar包发送到nginx对应的html文件夹下,并进行解压,然后在删除tar包

此时前端项目的部署完成。

7. Jenkins自动化部署项目

7.1 Webhooks钩子自动构建

适用场景:当修改代码后,上传至git后自动触发构建任务;执行合并操作是自动化构建

这个请求放在postman或git托管平台中是不行的,这是因为需要密码权限验证,可利用插件解决

7.2 定时任务自动构建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值