jenkins

jenkins

是一个持续集成、自动测试、持续部署的超级引擎,支持自定义工具集、多种交付通道

安装部署jenkins

jenkins与java对应版本要求

此次所用系统版本:

bash 复制代码
root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

安装java

java下载地址:https://www.oracle.com/java/technologies/downloads/

bash 复制代码
#卸载自带java
yum -y remove java
rm -rf /usr/bin/java
#安装java
wget  https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.rpm
rpm -ivh jdk-21_linux-x64_bin.rpm
java -version

安装git:https://mp.csdn.net/mp_blog/creation/editor/138207360

jenkins三种部署方法

jenkins官方下载地址:https://www.jenkins.io/download/

jenkins的rpm包镜像源地址:https://mirrors.jenkins-ci.org/

1.jenkins的rpm包部署
bash 复制代码
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
yum install fontconfig
yum -y install jenkins
vim /usr/lib/systemd/system/jenkins.service #修改Jenkins配置文件运行用户为root
    User=root
    Group=root
systemctl daemon-reload
systemctl  enable jenkins	   
service jenkins start

默认端口:8080

相关目录:

/var/lib/jenkins #主目录

/var/lib/jenkins//workspace/job_NAME #构建工程目录

/usr/lib/systemd/system/jenkins.service #配置文件

User=jenkins #设置启动用户

Group=jenkins #设置启动用户组

#设置启动java容器配置

JAVA_OPTS="-XX:MaxPermSize=512m -Djava.awt.headless=true"

JENKINS_PORT="8000" #设置端口

/usr/bin/jenkins #启动文件

/var/cache/Jenkins #程序文件

/usr/share/java/jenkins.war #jenkins的war包

2. jenkins的war包部署

所有版本war包下载地址:https://updates.jenkins-ci.org/download/war/

(此时数据存放在当前目录的.jenkins隐藏文件)

bash 复制代码
wget https://get.jenkins.io/war-stable/2.452.2/jenkins.war
yum install fontconfig
nohup java -jar jenkins.war  --httpPort=10000  > jenkins.log  2>&1 &

启动参数:

--httpPort=8080 #设置监听端口,默认为8080

-DJENKINS_HOME=/path/to/your/jenkins_home #默认情况下,Jenkins会将其数据存储在用户主目录下的.jenkins文件夹中。但你可以通过-DJENKINS_HOME参数指定一个不同的目录。

-Xms512m -Xmx1024m #设置JVM的堆内存大小

--prefix=jenkins #指定 Jenkins 的 URL 路径前缀如本示例的url:http://yourserver.com/jenkins/

3.tomcat部署

jenkins的基础用法

jenkins系统全局设置

设置中文

  1. 安装插件:Localization: Chinese (Simplified) 、 Locale

  2. jenkins界面设置

用户账号密码设置

创建与其他服务器或代码仓库等相关的认证信息

1.安装Git plugin插件

2.创建保存相关信息,例如代码仓库的密钥:jenkins上配置私钥,gitlab配置公钥

插件管理

插件下载地址: https://updates.jenkins-ci.org/download/plugins/

两种安装方法:

  1. 手动导入插件,可从官网下载插件包解压移动或覆盖到插件目录

mv plugins /var/lib/jenkins/

chown -R jenkins.jenkins plugins/

service jenkins restart

  1. web图形界面的插件管理界面上联网安装或上传插件

常用插件:

git parameter #可以选择tag发布

subversion plugin #SVN项目 项目时使用

ssh plugin #远程管理

LDAP plugin #接入统一身份认证系统接口

jenkins 升级版本

  1. rpm -ql jenkins 找到jenkins的war包

  2. 备份后替换为挂网下载的war包

3.重启jenkins

备份jenkins

因为jenkins的所有数据都保存在目录/var/lib/jenkins/下,所以可以直接备份目录

bash 复制代码
tar -zxvf jenknis.tar.gz /var/lib/jenkins/

maven

作用:

作为Apache的开源项目,是一个项目管理和综合工具。Maven提供给开发人员构建一个完整的生命周期框架。

开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期。

主要服务于JAVA平台的构建、依赖管理、项目管理。

POM

POM(Project Object Model):项目对象模型,通过xml格式保存的pom.xml文件。

作用: 类似ant的build.xml文件功能更强大,该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等

安装:

下载地址:https://archive.apache.org/dist/maven/maven-3/

bash 复制代码
wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
tar -xvf apache-maven-3.5.4-bin.tar.gz
echo 'export PATH=$PATH:/root/apache-maven-3.5.4/bin' >>/etc/profile
source /etc/profile
mvn -v

配置文件:

/root/apache-maven-3.5.4/conf/settings.xml

MAVEN命令:

  1. 创建Maven的普通java项目:

mvn archetype:create

-DgroupId=packageName

-DartifactId=projectName

  1. 创建Maven的Web项目:

mvn archetype:create

-DgroupId=packageName

-DartifactId=webappName

-DarchetypeArtifactId=maven-archetype-webapp

  1. 清除后再编译

mvn clean install

jenkins的计划任务

在构建任务重配置定时构建时间

按角色授权

  1. 安装 Role-based Authorization Strategy 插件

  2. 设置授权策略为:Role-Based Strategy

3.1创建全局角色

3.2也可以创建匹配项目权限的项目角色

注意pattern的项目名字匹配模式是xxx.*(正则表达式)

4.最后管理用户和角色

jenkins主从配置

  1. 主从服务器都安装上jenkins配置好时间同步

2.添加从节点

3.查看配置成功后的显示节点状态

4.创建任务并绑定运行节点

URL调用jenkinsAPI

1.获取jenkins服务器上所有jobs列表

用法:

curl -u 用户名:密码 'http://JENKINS_URL/api/json?pretty=true'

示例:

curl -u root:123456 'http://192.168.0.11:8080/api/json?pretty=true'

2.构建一个指定的job

第一步:配置job的身份验证令牌

第二步:通过curl命令调用jenkinsAPI

用法:

curl -u 用户名:密码 'JENKINS_URL/job/test/build?token=TOKEN_NAME'

示例:

curl -u root:123456 'http://192.168.0.11:8080/job/test/build?token=1111111'

jenkins视图的创建

3.配置视图,可以根据任务进行选择,也可以使用正则表达式

4.最终效果

jenkins三种常见构建类型

Jenkins中自动构建项目的类型有很多,常用的有以下三种:

  • 自由风格项目(FreeStyle Project)
  • Maven项目(Maven Project)
  • 流水线项目(Pipeline Project)

其实每种构建类型都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别。使用哪种构建类型可以根据自己的需求和习惯来选择。(PS:个人推荐使用流水线类型,因为灵活度高)

1、自由风格项目类型

1、创建项目
  • Jenkins --> New Item
2、拉取源代码
3、构建
  • Build(构建) --> Add build step(添加构建步骤) --> Executor Shell
    • 执行shell命令
  • 执行两次的结果

|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 | ]# ls -l /data/jenkins/workspace/test-project-free total 12 -rw-r--r-- 1 jenkins jenkins 39 Aug 31 03:02 free01.txt -rw-r--r-- 1 jenkins jenkins 14 Aug 31 02:55 project01-rel.txt -rw-r--r-- 1 jenkins jenkins 19 Aug 31 02:55 README.md ]# cat /data/jenkins/workspace/test-project-free/free01.txt 2023-08-31 03:02:00 部署中...... 2023-08-31 03:02:33 部署中...... |

2、Maven项目类型

2、创建项目
  • Jenkins --> New Item
3、拉取源代码
4、构建
  • 拉取代码和远程部署的过程和自由风格项目一样,只是"构建"部分不同。

3、流水线项目类型

1、安装Pipeline插件
2、创建项目
  • Jenkins --> New Item
3、简单的pipeline语法

jenkins的参数化构建

参数类型

jenkins的参数类型有多种,也可以根据插件增加类型,如下图

参数的引用

  1. 根据所配置的参数类型,每个参数都有一个Name和Value。当构建开始时,这些信息被导出为环境变量,从而允许构建配置的后续部分访问这些值。

  2. 注意:不同的操作环境变量引用方式不同

Shell -- $dstversion

Windows -- %dstversion%

Git源码管理-- ${dstversion}

配置参数

选项参数

1.pipeline语法配置:

parameters { choice(name: 'CHOICES', choices: 'one', 'two', 'three', description: '') }

2.web界面配置

最终效果

git参数

web界面配置:

  • 最终效果
字符参数

1.pipeline语法配置:

parameters { string(name: 'DEPLOY_ENV', defaultValue: 'staging', description: '') }

2.web界面配置:

最终效果

文本参数

1.pipeline语法配置:

parameters { text(name: 'DEPLOY_TEXT', defaultValue: 'One\nTwo\nThree\n', description: '')

2.web界面配置:

最终效果:

布尔参数

1.pipeline语法配置:

parameters { booleanParam(name: 'DEBUG_BUILD', defaultValue: true, description: '') }

2.web界面配置:

最终效果

凭据参数

注意:不会直接公开凭据,而是公开凭据的ID

web界面配置:

最终效果

文件参数

注意:

文件参数不支持流水线

文件会被上传至workspace对应的job目录下,并且文件名会被修改:例如路径设置为 pak/ls

文件名就会被传到 workspace/job/pak 目录下名字为ls

如果在jenkins中继续读取该文件可以使用内置变量WORKSPACE

web界面配置:

最终效果

密码参数

1.pipeline语法配置:

parameters { password(name: 'PASSWORD', defaultValue: 'SECRET', description: 'A secret password') }

2.web界面配置:

最终效果

运行时参数

定义一个运行参数,用户可以选择一个确定的工程。网站的url地址将会被当作环境变量暴露出来,你可以在构建时使用,或者作为环境变 量,或者在配置中做变量替换。通过Jenkins可以查询到更多的信息。

web界面配置:

配置脚本输出此变量

最终效果:

运行结果:

Jenkins pipeline

参考文档:https://www.cnblogs.com/maiblogs/p/17675823.html

相关推荐
用户0328472220709 小时前
如何搭建本地yum源(上)
运维
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦3 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj4 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes