jenkins使用总结

常用链接

官方pipeline示例

并行任务配置

Jenkins pipeline控制并行执行job个数

shared-lib

pipeline代码调试

centos安装jenkins

Jenkins中使用Grab下载第三方Jar

Jenkins序列化

Multijob不能调用pipeline任务

升级Multijob插件到1.32及以上

slave中workspace出现@2

slave的配置的executor的数量只有1个,但是某些情况下在任务日志日志中会发现slave的workspace出现了@2的情况。

Jenkins在slave上启动任务之前,会先检查当前应该使用的workspace是否处于lock状态,如果处于lock(lock的原因TODO)状态,jenkins会自动在workspace后面加上@x使用,x递增。

如果slave一直处于使用非期望的workspace目录(如执行器只有一个,期望使用指定的workspace)时,可以通过断链slave和master之间的连接然后重连解决

admin密码丢失

  • 初始密码: ${jenkins_home}/secrets/initialAdminPassword
  • 修改过密码后忘记

    • ${jenkins_home}/config.xml 文件中以下内容修改为false

      1
      <useSecurity>true</useSecurity>
    • 重启jenkins服务

    • 系统管理 -> 全局安全配置 中 启用安全
    • 系统管理 -> 管理用户 中 重置密码

jenkins执行shell脚本时/etc/profile中环境变量不能访问

获取pipeline中的Script Path

1
def scriptPath = currentBuild.rawBuild.parent.definition.scriptPath

获取pipeline中stage和并行task中的分段日志

查看Jenkins中JAVA相关的环境变量信息

Manage Jenkins -> Script Console 中执行如下脚本

1
System.getProperty("permissive-script-security.enabled")

获取jenkins中安装的所有插件

1
2
3
4
5
6
7
8
9
Jenkins.instance.pluginManager.plugins.each {
println("${it.getDisplayName()} --- ${it.getVersion()}")
}

// 根据名称排序显示
List<String> jenkinsPlugins = new ArrayList<String>(Jenkins.instance.pluginManager.plugins)
jenkinsPlugins.sort { it.displayName }.each { plugin ->
println("${plugin.shortName}:${plugin.version}")
}

脚本式pipeline中failFast使用

清理Jenkins Master中的所有Job的历史记录

强制终止运行时间过长的构建记录

ssh slave连接过程

slave磁盘空间配置

[]