Jenkins Pipeline 流水线 - 添加节点 使用代理

jenkins,pipeline,流水线,添加,节点,使用,代理 · 浏览次数 : 976

小编点评

**Jenkins Pipeline 中使用 Docker 在 Linux 和 Windows 节点添加节点检查 Java 版本的步骤:** **Linux 节点** 1. 使用 `docker-compose` 创建 Docker 服务: ``` docker-compose up -d --name jenkins-docker-service ``` 2. 在 Pipeline 中使用 `agent`关键字指定使用 Docker Agent。 3. 在 `steps` 中使用 `sh` 命令运行 `docker --version` 命令以获取 Java 版本。 4. 打印 Java 版本信息。 **Windows 节点** 1. 使用 `docker-compose` 创建 Docker 服务: ``` docker-compose up -d --name jenkins-docker-service ``` 2. 在 Pipeline 中使用 `agent`关键字指定使用 Docker Agent。 3. 在 `steps` 中使用 `sh` 命令运行 `docker --version` 命令以获取 Java 版本。 4. 打印 Java 版本信息。 **脚本:** ``` agent none stages { stage('执行构建') { agent {\tlabel 'DockerAgent-label' } steps { sh 'docker --version' echo '构建完成' } } } ``` **注意:** * `docker-compose` 是一个用于管理多个 Docker 服务的工具。 * `docker` 是一个用于运行 Docker 服务的工具。 * `Agent` 指的是使用 Docker Agent 的步骤。 * `stage()` 是一个阶段,用于将一系列任务分组在一起。 * `agent` 是一个标签,用于将步骤分配给特定的节点。

正文

Jenkins 安装在 Windows 上
Docker 在Linux 上

流程

  • 将 Docker 在 Jenkins 节点中维护
  • Pipeline 中指定某些阶段使用哪个节点

添加节点

image
image
image
image
image

Checking Java version in the PATH
openjdk version "1.8.0_345"
OpenJDK Runtime Environment (build 1.8.0_345-b01)
OpenJDK 64-Bit Server VM (build 25.345-b01, mixed mode)
[11/01/22 15:47:11] [SSH] Checking java version of /opt/jenkins/jdk/bin/java
Couldn't figure out the Java version of /opt/jenkins/jdk/bin/java
bash: /opt/jenkins/jdk/bin/java: 娌℃湁閭d釜鏂囦欢鎴栫洰褰?

[11/01/22 15:47:11] [SSH] Checking java version of java
[11/01/22 15:47:11] [SSH] java -version returned 1.8.0_345.
[11/01/22 15:47:11] [SSH] Starting sftp client.
[11/01/22 15:47:12] [SSH] 正在拷贝最新版本的 remoting.jar...
Source agent hash is 8D575C4C8219E6AB2039295EC545C6C3. Installed agent hash is 8D575C4C8219E6AB2039295EC545C6C3
Verified agent jar. No update is necessary.
Expanded the channel window size to 4MB
[11/01/22 15:47:12] [SSH] Starting agent process: cd "/opt/jenkins" && java  -jar remoting.jar -workDir /opt/jenkins -jar-cache /opt/jenkins/remoting/jarCache
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: hudson/remoting/Launcher has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601)
Agent JVM has terminated. Exit code=1
[11/01/22 15:47:12] Launch failed - cleaning up connection
[11/01/22 15:47:12] [SSH] 连接关闭。

image
image
image

Pipeline 指定节点执行

pipeline {
    agent none
 
    stages { 
        stage('执行构建') {
            agent {	label 'DockerAgent-label' }  //这边使用节点名称或节点标签,都可以运行
            steps {
                sh 'docker --version' 
                echo '构建完成'
            }
        }
    }
}

image

与Jenkins Pipeline 流水线 - 添加节点 使用代理相似的内容:

Jenkins Pipeline 流水线 - 添加节点 使用代理

Jenkins 安装在 Windows 上 Docker 在Linux 上 流程 将 Docker 在 Jenkins 节点中维护 Pipeline 中指定某些阶段使用哪个节点 添加节点 Checking Java version in the PATH openjdk version "1.8.0

Jenkins Pipeline 流水线 - 完整构建 Pipeline Script 脚本

Docker Jenkins 安装配置 Windows 2016 安装 Jenkins 前置条件可参考 Jenkins Pipeline 流水线 - 拉代码(SVN) + Maven 编译打包 Jenkins Pipeline 流水线 - 添加节点 使用代理 Jenkins Pipeline 流水线

Jenkins Pipeline 流水线 - withCredentials 使用

添加凭证 Pipeline script pipeline { agent any stages { stage('withCredentials 使用凭证') { steps { withCredentials([usernamePassword(credentialsId: 'DockerSer

Jenkins Pipeline 流水线 - Parameters 参数化构建

可以通过参数的方式,指定构建的版本 有两种方式 界面添加 Pipeline Script 脚本配置 (需要Build 一次,然后生效,不知道有没有其它办法) General 界面添加 Pipeline Script Declarative Directive Generator pipeline {

Jenkins Pipeline 流水线 - 声明式 Demo

Jenkins Pipeline 流水线 流水线既能作为任务的本身,也能作为 Jenkinsfile 使用流水线可以让我们的任务从UI手动操作,转换为代码化,像dockerfile 一样。从shell 命令到配置文件,更适合大型项目,可以让团队其他开发者同时参与进来, 完整语法 tools:添加工具

Jenkins 多分支流水线(SVN)

实际应用过程中,一般多分支流水线的方式用得比较多一些, master 对应 生成环境 develop 对应 测试环境, 将不同分支的代码构建到不同的环境中 添加 Jenkinsfile 文件 Jenkinsfile 内容见:Jenkins Pipeline 流水线 - 完整构建 Pipeline S

Jenkins Pipeline 流水线 - 拉代码(SVN) + Maven 编译打包

Jenkins Pipeline 流水线 步骤 拉取SVN代码 -> Maven 构建 -> Docker 编译 -> 发布至阿里云仓库 -> K8S 更新 Jenkins插件安装 Localization: Chinese (Simplified) Subversion 【2.16.0】 --从S

Jenkins Pipeline 流水线 - 上传文件 Publish over SSH 执行命令

Jenkins Pipeline 流水线 - 上传文件 Publish over SSH 执行命令 Jenkins插件安装 Publish over SSH 系统配置 生成代码 sshPublisher: Send build artifacts over SSH 需要在 生成 sshPublish

Jenkins Pipeline 流水线 - 上传文件 Publish over SSH + Docker 编译 + 上传到阿里仓库

Jenkins Pipeline 流水线 Publish over SSH 将jar上传到远程 Docker 服务器、执行编译命令生成镜像、将镜像上传到阿里仓库 Publish over SSH Jar包上传、编译、上传 生成上传 jar 包脚本配置 生成上传 Dockerfile 脚本配置 注意在

Jenkins Pipeline 流水线 - 使用代理节点,Remote SSH 对 K8S 进行升级

Jenkins Pipeline 流水线 - K8S kubectl 升级 使用代理节点 Remote SSH 远程执行命令进行升级 Remote SSH 方式 安装插件 SSH Pipeline Steps Pipeline SSH 脚本 credentialsId: 'K8SMaster' pi