一、Jenkins 代理介绍

代理就是 Jenkins 干活的地方,就是你准备让Jenkins 在那个地方完成你给它设定的任务。

代理可以安装 Jenkins 的服务器(自己),通常成为 master, 也可以是一个 slave, 也可以是一个Docker 的容器,还可以是一个 kubernetes 的 Pod.

二、架构图

三、添加节点


1 在 Pipeline 中设置代理

在 Pipeline 中设置代理的方式式通过 agent 声明

全局代理和阶段代理

  • 全局代理
    agent 出现在 pipeline 块内的顶层,就是全局代理。这是必须要设置的。

全局代理边上此 jenkinsfile 中的所有阶段都将在此代理中执行。

  • 阶段代理

出现在 stage 块中,就是阶段代理。

阶段代理只作用与此阶段。

在任何可用的代理上执行流水线或阶段。

例如: agent any

pipeline {agent anystages {...}
}

使用 label 指定具体的某一个

pipeline {agent { label "node1"}stages {...}
}

参数
为了支持作者可能有的各种各样的用例流水线, agent 部分支持一些不同类型的参数。这些参数应用在pipeline块的顶层, 或 stage 指令内部。

any
在任何可用的代理上执行流水线或阶段。例如: agent any

none
当在 pipeline 块的顶部没有全局代理, 该参数将会被分配到整个流水线的运行中并且每个 stage 部分都需要包含他自己的 agent 部分。比如: agent none

label
在提供了标签的 Jenkins 环境中可用的代理上执行流水线或阶段。 例如: agent { label ‘my-defined-label’ }

node
agent { node { label ‘labelName’ } } 和 agent { label ‘labelName’ } 一样, 但是 node 允许额外的选项 (比如 customWorkspace )。

docker
使用给定的容器执行流水线或阶段。该容器将在预置的 node上,或在匹配可选定义的label 参数上,动态的供应来接受基于Docker的流水线。 docker 也可以选择的接受 args 参数,该参数可能包含直接传递到 docker run 调用的参数, 以及 alwaysPull 选项, 该选项强制 docker pull ,即使镜像名称已经存在。 比如: agent { docker ‘maven:3-alpine’ } 或

agent {docker {image 'maven:3-alpine'label 'my-defined-label'args  '-v /tmp:/tmp'}
}

kubernetes

需要 kubernetes plugin
在部署在Kubernetes集群上的pod内执行管道或stage。要使用此选项,必须从多分支管道或SCM管道加载Jenkinsfile。Pod模板是在kubernetes{}块中定义的。例如,如果您想要一个内有一个Kaniko容器的pod,您可以将其定义为:

agent {kubernetes {label podlabelyaml """
kind: Pod
metadata:name: jenkins-agent
spec:containers:- name: kanikoimage: gcr.io/kaniko-project/executor:debugimagePullPolicy: Alwayscommand:- /busybox/cattty: truevolumeMounts:- name: aws-secretmountPath: /root/.aws/- name: docker-registry-configmountPath: /kaniko/.dockerrestartPolicy: Nevervolumes:- name: aws-secretsecret:secretName: aws-secret- name: docker-registry-configconfigMap:name: docker-registry-config
"""}
/*** This pipeline will build and deploy a Docker image with Kaniko* https://github.com/GoogleContainerTools/kaniko* without needing a Docker host** You need to create a jenkins-docker-cfg secret with your docker config* as described in* https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-secret-in-the-cluster-that-holds-your-authorization-token*/podTemplate(yaml: """
kind: Pod
spec:containers:- name: kanikoimage: gcr.io/kaniko-project/executor:debug-539ddefcae3fd6b411a95982a830d987f4214251imagePullPolicy: Alwayscommand:- /busybox/cattty: truevolumeMounts:- name: jenkins-docker-cfgmountPath: /kaniko/.dockervolumes:- name: jenkins-docker-cfgprojected:sources:- secret:name: regcreditems:- key: .dockerconfigjsonpath: config.json
""") {node(POD_LABEL) {stage('Build with Kaniko') {git 'https://github.com/jenkinsci/docker-inbound-agent.git'container('kaniko') {sh '/kaniko/executor -f `pwd`/Dockerfile -c `pwd` --insecure --skip-tls-verify --cache=true --destination=mydockerregistry:5000/myorg/myimage'}}}
}

Jenkins- Jenkins的代理相关推荐

  1. jenkins开启web代理通过tcp端口方式使master与slave建立连接

    jenkins开启web代理通过tcp端口方式使master与slave建立连接 文章目录 jenkins开启web代理通过tcp端口方式使master与slave建立连接 1.jenkins web ...

  2. Jenkins启动时提示:Starting Jenkins Jenkins requires Java8 or later, but you are running 1.7.0

    场景 CentOS6中安装并启动Jenkins时提示: Starting Jenkins Jenkins requires Java8 or later, but you are running 1. ...

  3. Jenkins——Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包)

    Jenkins--Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包) 持续集成及Jenkins介绍 软件开发生命周期 什么是持续集成? 持续集 ...

  4. 夕阳桥断 Linux(centos6.5)下安装jenkins Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎。 通俗的来讲,jenkins就是一个可以实现自动化部署的一个插

    夕阳桥断 Linux(centos6.5)下安装jenkins Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎. 通俗的来讲,jenkins就是一个可以实现自动化部署的一个插件, ...

  5. [问题已处理]-[jenkins]-Jenkins 反向代理有误

    我是因为更换了端口所以发生这个错误 具体解决方案 傻瓜式操作

  6. [Jenkins]jenkins配置163邮箱做邮件发送

    1. 开通163邮箱SMTP服务: 设置->POP3/SMTP/IMAP->查看有没开启,如果没有,按照步骤进行开启: 2. 插件安装 Dashboard->Manage Jenki ...

  7. Jenkins——Jenkins构建Maven项目(三种风格)+Jenkins项目构建细节

    Jenkins构建Maven项目+Jenkins项目构建细节 Jenkins构建的项目类型介绍 自由风格项目构建 拉取代码 编译打包 远程部署 代码改动后的持续集成 Maven项目构建 Pipelin ...

  8. Service ‘Jenkins‘ (Jenkins) failed to start. verify that you have sufficient privileges to start

    本地安装jekins报错,无法运行,权限问题 . 打开 计算机管理-服务-jekins右键属性-登录,选择本地系统用户登录即可

  9. 升级jenkins 导致jenkins启动失败_升级Jenkins:发布和代理 VUE 项目

    (海上生明月,_ _ _ _ _) 书接上回,在之前的几篇文章中,我们主要通过几篇文章来讲解了如何通过一个镜像,快速的创建Jenkins容器实例,然后搭建我们的持续集成和持续部署的平台,相关的文章呢如 ...

  10. 自动化部署之jenkins

    一.什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集 ...

最新文章

  1. 通俗易懂,到底什么是区块链?
  2. A Guide to Python's Magic Methods
  3. ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内。...
  4. 何时使用[self release]
  5. memcached协议
  6. matlab 与dsp联合仿真,matlab和DSP联合开发前景很大?
  7. Android学习系列(一)初识安卓
  8. Linux计划任务之_Crontab
  9. 每周送新书:Python数据分析、SSM框架、Redis深度历险
  10. 基于gdal的格网插值
  11. php点击表格单元格链接,详解PhpSpreadsheet单元格设置样式、图片、超链接等
  12. 兼容IE8使用ajax上传文件
  13. kmplayer安卓版外部编码器_KMPlayer下载
  14. treetable php,第105款插件:jquery.treetable.js的使用
  15. H5调用手机拍照显示并压缩
  16. 智商太低,竟然算不出病狗神题了
  17. 重建堆栈指南及其自动化实现
  18. 千里马android framework开发解决Accessing hidden method限制,让应用访问隐藏方法(需要可以修改系统源码方案)
  19. C语言反序输出英文句子,iOS开发-英文句子倒序输出
  20. RN学习和开发笔记(一)

热门文章

  1. NOI Online 2022 入门组
  2. 第二章 python-pcl、open3d读取、显示pcd、bin等格式点云数据
  3. 1、metasploit基础知识(笔记)
  4. VM安装MAC细节问题
  5. 机器学习实验1 / 线性回归
  6. CAD中的剪切怎么用----trim的用法?
  7. 为什么在计算机系统中,数值一律用补码来表示(存储)
  8. [前端]本地存储搜索历史-localStorage
  9. 2022认证杯(小美赛)D题详细思路
  10. logcat崩溃_崩溃的原因