GVKun编程网logo

如何在Jenkinsfile中执行Shell脚本?(jenkins执行shell脚本过程)

7

本文的目的是介绍如何在Jenkinsfile中执行Shell脚本?的详细情况,特别关注jenkins执行shell脚本过程的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的

本文的目的是介绍如何在Jenkinsfile中执行Shell脚本?的详细情况,特别关注jenkins执行shell脚本过程的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解如何在Jenkinsfile中执行Shell脚本?的机会,同时也不会遗漏关于bash – 如何在jenkins中为shell脚本提供凭据、groovy – 如何在jenkinsfile中硬链接文件、jenkins 执行shell脚本权限不够?、Jenkins 构建Docker镜像执行shell脚本用户权限问题的知识。

本文目录一览:

如何在Jenkinsfile中执行Shell脚本?(jenkins执行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脚本提供凭据

bash – 如何在jenkins中为shell脚本提供凭据

我们在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中硬链接文件

groovy – 如何在jenkinsfile中硬链接文件

我的总体目标是,从S3同步文件,然后硬链接以避免“多个副本”并在构建docker容器时节省空间.这是我到目前为止所拥有的

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类时,我实际上无法找出正确的调用约定,构造函数至少似乎未被记录.

解决方法

我还没弄明白如何在groovy中做到这一点,当我尝试使用Java的nio文件时,我遇到了一个沙箱错误,但是在shell步骤中这样做了

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 执行shell脚本权限不够?

Jenkins 构建Docker镜像执行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脚本用户权限问题的相关信息,可以在本站进行搜索。

本文标签: