2019-03-14
前面我们使用gradle初始化了Jenkins Shared Libraries的开发框架,本篇将介绍在src目录下使用第三方库开发我们自己的库。
在src目录下开发自己的库的需求是肯定存在的,我们在var目录中编写自定义Step时会用到Jenkins及其众多插件目前提供的各式各样的Pipeline Step,但有些需求是这些Step无法提供的。例如,在进行构建容器镜像之前我们可能需要访问Harbor(一个Docker镜像仓库)的API获取一些额外的信息,或者访问其他配置纹理系统的Restful API获取信息,这就需要我们的Shared Libraries中提供HTTP Client的功能,显然这个功能可以放到src目录下,而我们不会白手起家,在src目录下编写这个HTTP Client功能的时候,就会用到第三方库了。
...2019-03-13
Jenkins Shared Libraries是一种扩展Jenkins Pipeline的技术,通过编写Shared Libraries可以实现自定义的Steps,将流水线逻辑中重复或共通的部分进行抽象和封装。
实践中每个DevOps团队都应该通过维护一个或多个Shared Libraries项目再结合第三方的Jenkins插件定制团队自己的Jenkins流水线。
...2018-07-15
Script Security Plugin方法白名单
#
Jenkins Script Security Plugin是一个用于保障Jenkins脚本安全的插件。
该插件定义了一个白名单,只有在白名单内的方法和静态方法才能能在Jenkins的Groovy sandbox中运行。
具体可以查看https://github.com/jenkinsci/script-security-plugin/blob/master/src/main/resources/org/jenkinsci/plugins/scriptsecurity/sandbox/whitelists/generic-whitelist。
例如当前的版本在pipeline中中使用java.time.Instant.parse("2019-07-15T07:24:29.830388369Z")
方法,就会报下面的错误:
...2018-07-13
Jenkins Pipeline支持两种语法,一种Declarative Pipeline(声明式),一种Scripted Pipeline(脚本式)。
声明式的Pipeline限制用户使用严格的预选定义的结构,是一种声明式的编程模型,对比脚本式的Pipeline学习起来更加简单;脚本式的Pipeline限制比较少,结构和语法的限制由Groovy本身决定,是一种命令式的编程模型。
...2018-03-02
Jenkins 2.0开始推行Pipeline as Code,实现从CI到CD的转变。
Pipeline实际上是一套Groovy DSL,用Groovy脚本描述CI/CD的流程,Jenkins可以从代码库中获取脚本,实现了Pipeline as Code。Pipeline将原来独立运行的多个任务连接起来,可以实现更加复杂的CI/CD流程。
...2017-06-04
Jenkisn官方提供两种支持方式的版本:
- LTS(Long-term-Support)版本:大约每12周更新一次
- Weekly Release:每周更新一次,每个版本会有一些enhancement和bug fix
我们使用的是Weekly版本,这里记录一下Jenkins版本的升级和插件更新。
最初我们是使用rpm安装的Jenkins,这种安装方式jenkins.war被默认安装到/usr/lib/jenkins下。
升级Jenkins的版本只要将这个目录的jenkins.war替换成新的版本,重启Jenkins服务即可。
...2017-05-10
环境
#
- 服务器CentOS 7
- 服务器上已经装好JDK 1.8
- Jenkins版本2.60
Jenkins安装
#
下载安装包:
1wget https://pkg.jenkins.io/redhat/jenkins-2.60-1.1.noarch.rpm
安装:
1yum localinstall jenkins-2.60-1.1.noarch.rpm
创建JENKINS_HOME
目录:
1mkdir /home/jenkins
2chown jenkins:jenkins /home/jenkins