本文的目的是介绍如何在Jenkinsfile中执行Shell脚本?的详细情况,特别关注jenkins执行shell脚本过程的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的
本文的目的是介绍如何在Jenkinsfile中执行Shell脚本?的详细情况,特别关注jenkins执行shell脚本过程的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解如何在Jenkinsfile中执行Shell脚本?的机会,同时也不会遗漏关于bash – 如何在jenkins中为shell脚本提供凭据、groovy – 如何在jenkinsfile中硬链接文件、jenkins 执行shell脚本权限不够?、Jenkins 构建Docker镜像执行shell脚本用户权限问题的知识。
本文目录一览:- 如何在Jenkinsfile中执行Shell脚本?(jenkins执行shell脚本过程)
- bash – 如何在jenkins中为shell脚本提供凭据
- groovy – 如何在jenkinsfile中硬链接文件
- jenkins 执行shell脚本权限不够?
- Jenkins 构建Docker镜像执行shell脚本用户权限问题
如何在Jenkinsfile中执行Shell脚本?(jenkins执行shell脚本过程)
我保留一个名为的shell脚本文件urltest.sh
,/var/lib/jenkins
并从jenkins
构建中执行该文件。
当我执行构建时,它失败。
The Environment Variables are - HOME - /var/lib/jenkins ;JENKINS_HOME - /var/lib/jenkins
控制台输出如下:
Started by user anonymousBuilding in workspace /var/lib/jenkins/workspace/AutoScript[AutoScript] $ /bin/sh -xe /tmp/hudson2777728063740604479.sh+ sh urltest.shsh: 0: Can''t open urltest.shBuild step ''Execute shell'' marked build as failureFinished: FAILURE
我在应该保留外壳脚本文件以便执行的位置上感到困惑。
答案1
小编典典如果看到错误消息,则提示
在工作空间中构建/ var / lib / jenkins / workspace / AutoScript
并根据您的评论将urltest.sh放入
/ var / lib / jenkins
因此,詹金斯无法找到该文件。在构建步骤中执行此操作,它将起作用
cd # which will point to /var/lib/jenkins./urltest.sh # it will run your script
如果仍然失败,请尝试将文件扔给jenkin,因为jenkin用户可能没有文件许可权,但是我认为,如果您执行上述步骤,则可以运行。
bash – 如何在jenkins中为shell脚本提供凭据
USER=theuser PASS=thepass
在项目环境中(为运行准备环境 – >属性内容)
这工作正常,但这是一个糟糕的解决方案,因为:
>凭证未安全存储
>任何有权访问项目配置的人都可以看到它们
>他们在Jenkins控制台泄漏
我们已经研究了一下,发现了promising plugin,但我们不知道如何使插件管理的凭据可用于我们的脚本,理想情况下是环境变量.
我们如何从脚本访问Jenkins插件管理的凭据?
解决方法
withCredentials([[$class: 'UsernamePasswordMultiBinding',credentialsId: yourCredentialsId,usernameVariable: 'USERNAME',passwordVariable: 'PASSWORD']]) { // user name and password will be stored in USERNAME and PASSWORD envs }
groovy – 如何在jenkinsfile中硬链接文件
withAWS(region: ''us-east-1'') { s3Download( bucket: ''artifacts.mydomain.tld'',file: "${env.ORACLE_RPM}",path: "${env.HOME}/${env.ORACLE_RPM}",) script { linkBlocking("etc/docker/${env.PROJECT}/${env.ORACLE_RPM}","${env.HOME}/${env.ORACLE_RPM}") } }
s3Download有效,但我不确定如果有更新的版本,它是否会更新文件.
但是,当我尝试使用FileSystem
类时,我实际上无法找出正确的调用约定,构造函数至少似乎未被记录.
解决方法
withAWS(region: ''us-east-1'') { script { try { s3Download( bucket: ''artifacts.mydomain.tld'',file: "${env.HOME}/${env.ORACLE_RPM}",path: "${env.ORACLE_RPM}",) } catch (Exception e ) {// don''t update the file if it exists } finally { sh "ln -f ${env.HOME}/${env.ORACLE_RPM} etc/docker/${env.PROJECT}/${env.ORACLE_RPM}" } } }
jenkins 执行shell脚本权限不够?

Jenkins 构建Docker镜像执行shell脚本用户权限问题
转载 文章 供参考
在jenkins 构建docker 镜像时,执行到docker build 时,构建失败了,错误信息如下:
+ docker build -t cloud-paas-portal:13 --build-arg APP_KEY=cloud-paas-portal .
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Build step ''Execute shell'' marked build as failure
Finished: FAILURE
后度娘后,解决办法是
将vim /etc/sudoers 里面的Defaults requiretty 注释掉重启再一次构建就ok了
我们今天的关于如何在Jenkinsfile中执行Shell脚本?和jenkins执行shell脚本过程的分享就到这里,谢谢您的阅读,如果想了解更多关于bash – 如何在jenkins中为shell脚本提供凭据、groovy – 如何在jenkinsfile中硬链接文件、jenkins 执行shell脚本权限不够?、Jenkins 构建Docker镜像执行shell脚本用户权限问题的相关信息,可以在本站进行搜索。
本文标签: