jenkins -- 问题之旅

我将在此处记录在jenkins中遇到的各种小问题

jenkins shell脚本变量加载问题

问题:jenkins进行构建时,shell脚本中总有一些命令报错找不到,但是在命令行却又正常
原因:这是因为bash有多种模式,不同模式加载的环境变量不同。(详见:https://blog.csdn.net/hudashi/article/details/82464995)
解决:可使用 login模式

#!/bin/sh --login

jenkins shell中python执行中文乱码问题

问题:以下命令curl得到一串带有中文的json,python的作用是美化json格式:
curl "http://xxx/xxx/xxx" | python -m json.tool
报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position 35-40: ordinal not in range(128)
原因:虽然 LANG="en_US.UTF-8" 这个变量决定着系统默认语言,但是python并不会加载此变量,python会加载 $PYTHONIOENCODING

[root@iZ23cnbc8ycZ huan_yang]# cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

解决:在jenkins的shell脚本中加上:

export PYTHONIOENCODING=UTF-8 

如何自定义jenkins BUILD NUMBER


变为

配置:
将需要配置的内容作为变量引入,在shell脚本处将变量写入一个文件

echo ${server_env%_*}_${tags#*_} > version.txt


配置item分组权限配置

安装插件 Role-based Authorization Strategy
全局安全配置 --> Role-Based Strategy

在此处配置具体的权限划分

Role-based Authorization Strategy插件导致的启动失败

当我重启tomcat时,显示如下页面,网上有人说是更新了这个插件导致的。

日志报错:Unable to read /root/.jenkins/config.xml

解决方案:
删掉 /root/.jenkins/config.xml 里的 <authorizationStrategy ... 重新启动。
注:请先备份配置文件与相关目录,防止数据丢失。

pipeline 僵尸作业

有一个pipeline一直处于running状态 abort无效,输出日志 Click here to forcibly terminate running steps。
解决方案:
到jenkins主目录下删掉该项目的build下对应的build_number目录。
我的是多分支流水线,删除目录为 /root/.jenkins/jobs/hello2/branches/production/builds/4
再重启服务。

posted @ 2020-05-06 20:08  huandada  阅读(680)  评论(0编辑  收藏  举报