jenkins配置持续更新

jenkins安装:

1、通过yum进行安装jenkins

[root@node2 ~]# yum install java-11-openjdk.x86_64
[root@node2 ~]# wget -O /etc/yum.repos.d/jenkins.repo --no-check-certificate https://pkg.jenkins.io/redhat-stable/jenkins.repo
[root@node2 ~]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
[root@node2 ~]# yum install jenkins -y
[root@node2 ~]# grep "root" /usr/lib/systemd/system/jenkins.service
User=root
Group=root
[root@node2 ~]# systemctl start jenkins
[root@node2 ~]# systemctl status jenkins

 如果jdk17安装的jenkins:

[root@novel-node1 ~]# ps -ef|grep java
root      45494      1 99 08:23 ?        00:00:20 /usr/lib/jvm/jdk-17.0.13-oracle-x64/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=8080
[root@novel-node1 ~]# systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
   Loaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2025-05-26 08:23:52 EDT; 4s ago
 Main PID: 45494 (java)
    Tasks: 45
   Memory: 295.3M
   CGroup: /system.slice/jenkins.service
           └─45494 /usr/lib/jvm/jdk-17.0.13-oracle-x64/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=8080

而编译的项目需要jdk1.8,那么安装jdk1.8:

[root@novel-node1 ~]# yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64

然后将jdk17切换到jdk1.8:

[root@novel-node1 ~]# update-alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jdk-17.0.13-oracle-x64/bin/java
   2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jre/bin/java)

Enter to keep the current selection[+], or type selection number: 2
[root@novel-node1 ~]# java -version
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)
[root@novel-node1 ~]# /usr/local/apache-maven-3.9.9/bin/mvn -v
Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
Maven home: /usr/local/apache-maven-3.9.9
Java version: 1.8.0_412, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"

 当在本地编译成功:

[root@novel-node1 ~]# java -version
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)
[root@novel-node1 ~]# /usr/local/apache-maven-3.9.9/bin/mvn -v
Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
Maven home: /usr/local/apache-maven-3.9.9
Java version: 1.8.0_412, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"

[root@novel-node1 111]# /usr/local/apache-maven-3.9.9/bin/mvn -s settings.xml -f pom.xml -U clean package -Dmaven.test.skip=true
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:09 min
[INFO] Finished at: 2025-05-26T08:33:26-04:00
[INFO] ------------------------------------------------------------------------

但是执行jenkins job还是失败:

 这个项目还是使用jdk1.8版本的,根据报错看还是没有使用到jdk1.8的jre,所以配置jdk:

 然后再执行jenkins job:

 

 配置不杀掉进程:

BUILD_ID=dontKillMe
nohup java -jar manager.jar >log.out 2>&1 &

如果这里不生效,可以将变量配置到环境变量:

 

 

 

 

2、通过docker进行安装:

cd /etc/yum.repos.d/ && wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl start docker
systemctl status docker
systemctl enable docker
mkdir /var/lib/jenkins
docker run --privileged -d -p 9090:8080 -p 50000:50000 -v /var/lib/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock://var/run/docker.sock -u root --restart=always --name=jenkins jenkins/jenkins

docker安装Jenkins默认jdk17,如果需要安装jdk1.8那么有下面方法:

1、宿主机安装jdk1.8

[root@jenkins test1]# yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64

然后将jdk1.8挂载到Jenkins容器:

[root@jenkins test1]# docker stop jenkins
jenkins
[root@jenkins test1]# docker rm jenkins
jenkins
[root@jenkins test1]# docker run --privileged -d -p 9090:8080 -p 50000:50000 -v /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 -v /var/lib/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock://var/run/docker.sock -u root --restart=always --name=jenkins jenkins/jenkins
bc05789477b0ecb80cf28555198ba0fe6a0d30d86c8c32ec4d8f87fa2d6a65db

 测试:

 

 2、第二种办法,在容器中进行安装jdk1.8:

apt-get update
apt-get install -y openjdk-8-jdk

3、通过Windows进行安装jenkins:https://blog.csdn.net/2501_90403983/article/details/145379473

# Windows安装java环境,需要在oracle jdk网站进行注册下载jdk17:https://www.oracle.com/java/technologies/downloads/#java17

# 下载jenkins war进行安装启动:java -jar jenkins.war --httpPort=8080,https://get.jenkins.io/war-stable/2.492.3/jenkins.war

# 下载jenkins.msi进行安装jenkins,直接界面化进行安装:https://www.jenkins.io/download/thank-you-downloading-windows-installer-stable/

 

jenkins安装过程最好先不要默认安装插件,安装进入到页面后再进行安装

Jenkins国内插件json:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

jenkins插件及对应Jenkins版本:https://updates.jenkins-ci.org/download/plugins

 

Jenkins之插件Publish Over SSH

1、插件安装:该插件是用来进行通过ssh传输job自动化后的产物,比如将文件或者目录通过ssh传输到其他服务器

 2、配置

 3、将Jenkins本地目录传输到其他服务器的配置:

 

 将这里打开会显示传输的过程

 然后到远程服务器上查询:

[root@localhost ~]# ll /home/doc/
total 72
-rw-r--r-- 1 root root 27802 Apr 12 01:07 mysql.sql
-rw-r--r-- 1 root root 19862 Apr 12 01:07 oracle.sql
-rw-r--r-- 1 root root 21595 Apr 12 01:07 sqlServer.sql

 如果传输的是文件:

 

 

[root@localhost ~]# ll /home/
total 4
drwxr-xr-x 2 root root  62 Apr 12 01:07 doc
-rw-r--r-- 1 root root 690 Apr 12 01:46 Dockerfile

 如果传输的不是当前目录,需要将前缀去掉:

 

 

[root@localhost ~]# ll /home/
total 32
drwxr-xr-x 2 root root    62 Apr 12 01:07 doc
-rw-r--r-- 1 root root   690 Apr 12 01:46 Dockerfile
-rw-r--r-- 1 root root 27802 Apr 12 01:48 mysql.sql

 这里需要注意,该插件主要功能是传输文件或者目录,如果需要在远程服务器进行执行命令或者脚本,该插件是不能执行成功的,会提示找不到命令

如果需要在远程服务器进行执行命令或者脚本需要安装ssh插件

安装完ssh插件配置ssh信息:

 

然后就可以执行远程命令了:

 

 

jenkins配置分支选择:

 要实现上面这种分支选择,需要安装List Git Branches Parameter PlugIn插件

 然后配置如下:

 

注意上面这个步骤只是list列出该仓库的分支,但是并不clone下载,所以仅仅配置该步是不会有代码数据到Jenkins本地的,如果需要clone下载代码还需要配置如下:

 

 字符串选择:

 配置如下:

 

 执行结果:

 

jenkins+gitee+webhook:

安装插件:Generic Webhook Trigger 插件,然后job就会出现如下配置:

 唯一需要配置的是如下token:

 生成token:

 

 

 

 将生成的token进行拷贝到job配置:

 将http://JENKINS_URL/generic-webhook-trigger/invoke?token=112e5b35f6f355289bf7c820636b7138ae配置到gitee仓库的webhook那里:

 

 由于我这里jenkins是内网ip所以配置不了webhook,如果jenkins配置在外网服务器是该配置,配置完进行测试就行

posted on 2025-04-12 14:01  wadeson  阅读(154)  评论(0)    收藏  举报