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

相关推荐
Hacker_Oldv2 小时前
软件测试(功能、工具、接口、性能、自动化、测开)详解
运维·自动化
Java樱木2 小时前
使用字节Trae + MCP,UI 到网页自动化。
运维·自动化
无敌暴龙兽z5 小时前
离线环境安装elk及设置密码认证
运维·elk
好奇的菜鸟5 小时前
如何在 Ubuntu 24.04 (Noble) 上使用阿里源
linux·运维·ubuntu
bcbobo21cn5 小时前
初步了解Linux etc/profile文件
linux·运维·服务器·shell·profile
wayuncn6 小时前
月付物理服务器租用平台-青蛙云
运维·服务器·服务器租用·服务器托管·物理机租用
望获linux6 小时前
【实时Linux实战系列】CPU 隔离与屏蔽技术
java·linux·运维·服务器·操作系统·开源软件·嵌入式软件
0wioiw06 小时前
C#基础(项目结构和编译运行)
linux·运维·服务器
2401_873587827 小时前
Linux常见指令以及权限理解
linux·运维·服务器
RW~7 小时前
Minio安装配置,桶权限设置,nginx代理 https minio
运维·nginx·https·minio