问题表现
新的服务器上,新安装的jenkins,在上面创建了一个pipline项目,脚本里有shell命令,但是jenkins每次执行都卡住,经过尝试,无论多简单的命令都执行不了,cp,mv等都不行,只有echo能执行。
以为是服务器问题,于是删除该虚拟机重装。
重新把环境安装好,再把一模一样的pipline脚本黏贴进去,这次竟然能执行了。
为什么呢?
先别急!
执行的时候报了一个错,mvn not found。
但是服务器上已经安装好maven,服务器的环境变量里也配好maven_home了,为什么还是报这个错呢?于是百度之,得知,需要到jenkins的Configure System里,全局属性下也配上环境变量,于是兴冲冲的去配上,配置如下:
保存,然后再去执行刚才的项目。咦?怎么又卡在shell命令上了?难道跟刚才的动作有关系?
这时我想起来,在服务器上配置PATH变量的时候,是追加了MAVEN_HOME,系统原先还有这么一串东西:
很明显,跟这串配置有关。
于是复制过来,添加到jenkins的PATH配置上。
再一执行,果然可以了。
问题原因
jenkins设置全局变量PATH时,未设置sbin,bin等路径,导致执行不了很多shell命令。
可以看到,这些是系统必备程序的路径配置,所以其实不是执行不了shell命令,而是找不到cp,mv等的路径,所以执行不了,把这些地址配到jenkins的PATH里就可以了!
正确配置如下: