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

相关推荐
测试米兔er2 分钟前
Jenkins教程-11-发送钉钉测试报告通知
jenkins
MXsoft61817 分钟前
Fujitsu Primergy RX2530 M2服务器监控指标解读
运维·服务器
孟里啥都有.34 分钟前
nginx重定向
运维·nginx
水彩橘子1 小时前
shellhub 部署
运维
零K沁雪1 小时前
VirtualBox 安装 Ubuntu Server24.04
linux·运维·ubuntu
FlowingRiver1 小时前
nginx配置stream代理
运维·nginx
星殇曦落1 小时前
nginx的重定向(rewrite)
运维·nginx
蜗牛学苑_武汉2 小时前
Linux之文本三剑客
linux·运维
小宏运维有点菜2 小时前
docker
运维·docker·容器
孤城2862 小时前
08 docker Registry搭建docker私仓
运维·docker·容器·devops