下面的插件通过与管道兼容的步骤提供可用的功能。有关如何将步骤集成到管道中的更多信息,请参见步骤部分的管道的语法页面。

有关其他此类插件的列表,请参阅管道步骤参考页面。

凭证绑定插件

withCredentials:将凭据绑定到变量

允许以特殊的方式使用各种凭据(秘密)。(有些步骤明确要求特定类型的凭据,通常作为credentialsId参数,在这种情况下,此步骤是不必要的。)每个绑定都将在步骤的范围内定义一个活动的环境变量。然后,您可以在任何其他希望设置环境变量的步骤中直接使用它们:

node {withCredentials([usernameColonPassword(credentialsId: 'mylogin', variable: 'USERPASS')]) {sh " ' set +x curl -u " https://private.server/ > output " '}}

另一个例子(使用代码生成器查看所有选项):

node {withCredentials([string(credentialsId: 'mytoken', variable: 'TOKEN')]) {sh " ' set +x curl -H " TOKEN: $TOKEN" https://some.api/ " '}}

注意引用来定义脚本(隐式参数上海)。您希望shell将secret作为环境变量展开。下面的习惯用法可能不太安全,因为这个秘密是由Groovy插入的,所以(例如)典型的操作系统进程列表会意外地泄露它:

node {withCredentials([string(credentialsId: 'mytoken', variable: 'TOKEN')]) {sh /* WRONG!* /”““旋度+ x - h标记:$牌https://some.api/”"}}

至少在Linux上,在同一帐户上运行的其他进程可以获取环境变量,因此不应该在同一节点上运行使用秘密的作业,而将其作为不受信任方控制的作业。在任何情况下,您都应该将扩展作为环境变量而不是包含在命令中,因为像Blue Ocean这样的Jenkins可视化会这样做必威国际有限公司尝试检测包含秘密的步骤参数并拒绝显示它们。

秘密将被掩盖。****),以防它们被打印到构建日志中。这将阻止你不小心通过日志披露密码等。(Bourne shell组+ x,或Windows批处理@echo掉,阻止在回显命令中显示秘密;但是在调试模式下的构建工具可能会将所有环境变量转储到标准输出/错误中,或者设计糟糕的网络客户端可能会显示身份验证,等等)当然可以简单地绕过屏蔽;任何被允许配置作业或定义Pipeline步骤的人都被认为是受信任的,可以使用范围内的任何凭据。

要注意,某些工具在显示秘密时会破坏它们。举个例子,Bash(相对于Ubuntu的简单的Dash)是通过包含文本来实现的在回波模式:

$ export PASS=foo"'"bar $ env|fgrep PASS PASS=foo'bar $ sh -xc 'echo $PASS' + echo foo'bar $ bash -xc 'echo $PASS' + echo 'foo'\ "bar 'foo' bar

只有在尽最大努力的基础上才能发现被破坏的秘密。默认情况下,Jenkin必威国际有限公司s将试图掩盖被篡改的秘密,因为它们将出现在Bourne shell、Bash、Almquist shell和Windows批处理的输出中。如果没有这些策略,混乱的秘密将以纯文本形式出现在日志文件中。在上面的例子中,这将导致:

+ echo 'foo'\ " bar' ****

这个特殊的问题可以通过关闭echo来更安全地防止组+ x或者在secrets中避免使用shell元字符。

对于存储秘密文件的绑定,要小心

node {dir('subdir') {withCredentials([file(credentialsId: 'secret', variable: ' file ')]) {sh 'use $ file '}}}

是不安全的吗美元的文件可能在工作区内(在subdir@tmp secretFiles /),从而对任何能够浏览作业工作区的人可见。如果您需要在与通常工作区不同的目录中运行步骤,则应该使用

node {withCredentials([file(credentialsId: 'secret', variable: ' file ')]) {dir('subdir') {sh 'use $ file '}}}

确保秘密在工作空间之外;或者选择一个完全不同的工作空间:

node {ws {withCredentials([file(credentialsId: 'secret', variable: ' file ')]) {sh 'use $ file '}}}

也看到了证书屏蔽的限制更多背景信息请访问博客。

  • 绑定
      嵌套对象选择的数组/列表
    • aws
      将一个变量设置为AWS访问密钥,将另一个变量设置为凭据中给定的秘密密钥。
      • accessKeyVariable
        AWS Access Key Id的环境变量名。如果空的,AWS_ACCESS_KEY_ID就会被使用。
        • 类型:字符串
      • secretKeyVariable
        AWS秘密访问密钥的环境变量名。如果空的,AWS_SECRET_ACCESS_KEY就会被使用。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
      • roleArn(可选)
        • 类型:字符串
      • roleSessionDurationSeconds(可选)
        • 类型:int
      • roleSessionName(可选)
        • 类型:字符串
    • 令牌
      • 变量
        要在生成期间设置的环境变量的名称。此位置的内容不会被屏蔽。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • 美元类:“AwsBucketCredentialsBinding”
      做某事。
      • usernameVariable
        • 类型:字符串
      • passwordVariable
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • 证书
      将一个变量设置为用户名,另一个变量设置为凭据中给定的密码。
      警告:如果Jenkin必威国际有限公司s控制器或代理节点有多个执行器,则在同一节点上并发运行的任何其他构建都能够读取机密的文本,例如在Linux上使用ps e
      • keystoreVariable
        要在生成期间设置为临时密钥库位置的环境变量的名称。该文件的内容没有被屏蔽。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
      • aliasVariable(可选)
        要在生成期间设置为证书的密钥存储库别名的环境变量的名称。
        • 类型:字符串
      • passwordVariable(可选)
        要在生成期间设置为密码的环境变量的名称。
        • 类型:字符串
    • ConjurSecretApplianceCredentials
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
      • sPath(可选)
        • 类型:字符串
      • 变量(可选)
        • 类型:字符串
    • conjurSecretCredential
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
      • 变量(可选)
        • 类型:字符串
    • conjurSecretUsername
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
      • passwordVariable(可选)
        • 类型:字符串
      • usernameVariable(可选)
        • 类型:字符串
    • conjurSecretUsernameSSHKey
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
      • secretVariable(可选)
        • 类型:字符串
      • usernameVariable(可选)
        • 类型:字符串
    • dockerCert
      • 变量
        要在生成期间设置的环境变量的名称。
        属性的值将是所在目录的绝对路径{ca证书,关键}.pem文件将被创建。
        你可能想调用这个变量DOCKER_CERT_PATH,它将被docker客户端二进制文件理解。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • 文件
      将凭据中给出的文件复制到临时位置,然后将变量设置为该位置。(该文件在构建完成时被删除。)
      警告:如果Jenkin必威国际有限公司s控制器或代理节点有多个执行器,则在同一节点上并发运行的任何其他构建都能够读取该文件的内容。
      • 变量
        要在生成期间设置的环境变量的名称。此位置的内容不会被屏蔽。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • gitUsernamePassword
      • gitToolName

        指定Git工具安装名称

        • 类型:字符串
      • credentialsId
        设置git用户名/密码凭证HTTPHTTPS协议。

        壳牌的例子

        使用[gitUsernamePassword(credentialsId: 'my-credentials-id', gitToolName: 'git-tool')]) {sh 'git fetch——all'}

        批处理的例子

        [gitUsernamePassword(credentialsId: 'my-credentials-id', gitToolName: 'git-tool')]) {bat 'git submodule update——init——recursive'}

        Powershell的例子

        [gitUsernamePassword(credentialsId: 'my-credentials-id', gitToolName: 'git-tool')]) {powershell 'git push'}

        • 类型:字符串
    • 美元类:“KeychainPasswordAndPathBinding”
      • keychainPathVariable
        变量的名称,该变量包含关于存储在“凭据”中的密钥链路径的信息。
        因为值存储在这里指定的名称的环境变量中,所以您可以使用shell脚本等存储在'Credentials'中的信息。
        • 类型:字符串
      • passwordVariable
        变量的名称,该变量包含有关存储在“凭据”中的keychain密码的信息。
        因为值存储在这里指定的名称的环境变量中,所以您可以使用shell脚本等存储在'Credentials'中的信息。
        • 类型:字符串
      • inSearchPathVariable
        一个变量的名称,该变量存储关于是否将存储在“Credentials”中的密钥链设置为搜索路径的信息。
        因为值存储在这里指定的名称的环境变量中,所以您可以使用shell脚本等存储在'Credentials'中的信息。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • kubeconfigContent
      • 变量
        要在生成期间设置的环境变量的名称。此位置的内容不会被屏蔽。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • kubeconfigFile
      • 变量
        要在生成期间设置的环境变量的名称。此位置的内容不会被屏蔽。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • OSFBuilderSuiteOpenCommerceAPICredentials
      • clientIdVariable
        • 类型:字符串
      • clientPasswordVariable
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • sshUserPrivateKey
      将凭据中给出的SSH密钥文件复制到一个临时位置,然后将一个变量设置到该位置。(该文件在构建完成时被删除。)还可以为SSH密钥的用户名和密码短语设置变量。
      警告:如果Jenkin必威国际有限公司s控制器或代理节点有多个执行器,则在同一节点上并发运行的任何其他构建都能够读取该文件的内容。
      • keyFileVariable
        要设置为生成期间SSH密钥文件的临时路径的环境变量的名称。该文件的内容没有被屏蔽。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
      • passphraseVariable(可选)
        要在生成期间设置为密码的环境变量的名称。(可选)
        • 类型:字符串
      • usernameVariable(可选)
        要在生成期间设置为用户名的环境变量的名称。(可选)
        • 类型:字符串
    • 字符串
      将变量设置为凭据中给定的文本。
      警告:如果Jenkin必威国际有限公司s控制器或代理节点有多个执行器,则在同一节点上并发运行的任何其他构建都能够读取机密的文本,例如在Linux上使用ps e
      • 变量
        要在生成期间设置的环境变量的名称。此位置的内容不会被屏蔽。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • OSFBuilderSuiteTwoFactorAuthCredentials
      • serverCertificateVariable
        • 类型:字符串
      • clientCertificateVariable
        • 类型:字符串
      • clientPrivateKeyVariable
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • usernameColonPassword
      将变量设置为凭据中给定的用户名和密码,用冒号分隔().
      警告:如果Jenkin必威国际有限公司s控制器或代理节点有多个执行器,则在同一节点上并发运行的任何其他构建都能够读取机密的文本,例如在Linux上使用ps e
      • 变量
        要在生成期间设置的环境变量的名称。此位置的内容不会被屏蔽。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • usernamePassword
      将一个变量设置为用户名,另一个变量设置为凭据中给定的密码。
      警告:如果Jenkin必威国际有限公司s控制器或代理节点有多个执行器,则在同一节点上并发运行的任何其他构建都能够读取机密的文本,例如在Linux上使用ps e
      • usernameVariable
        要在生成期间设置为用户名的环境变量的名称。
        • 类型:字符串
      • passwordVariable
        要在生成期间设置为密码的环境变量的名称。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • 美元类:“VaultSSHUserPrivateKeyBinding”
      SSH使用Hashicorp Vault secret支持的私钥凭证的用户名
      • usernameVariable
        • 类型:字符串
      • privateKeyVariable
        • 类型:字符串
      • passphraseVariable
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • vaultString
      秘密短信詹金斯证书由哈希必威国际有限公司集团金库秘密支持
      • 变量
        要在生成期间设置的环境变量的名称。此位置的内容不会被屏蔽。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • 美元类:“VaultTokenCredentialBinding”
      • addrVariable
        要用保险库地址设置的环境变量。
        • 类型:字符串
      • tokenVariable
        使用保险库令牌设置的环境变量。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
      • vaultAddr
        要使用凭据的保险库地址。
        • 类型:字符串
      • namespaceVariable(可选)
        • 类型:字符串
      • vaultNamespace(可选)
        • 类型:字符串
    • 美元类:“VaultUsernamePasswordCredentialBinding”
      用户名/密码由Hashicorp Va必威国际有限公司ult秘密支持的Jenkins凭证
      • usernameVariable
        • 类型:字符串
      • passwordVariable
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • 邮政编码
      将凭据中给出的ZIP文件解压缩到一个临时目录,然后将变量设置到该位置。(该目录在构建完成时被删除。)
      警告:如果Jenkin必威国际有限公司s控制器或代理节点有多个执行器,则在同一节点上并发运行的任何其他构建都能够读取该目录的内容。
      • 变量
        要在生成期间设置的环境变量的名称。此位置的内容不会被屏蔽。
        • 类型:字符串
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
    • azureServicePrincipal
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
      • clientIdVariable(可选)
        • 类型:字符串
      • clientSecretVariable(可选)
        • 类型:字符串
      • subscriptionIdVariable(可选)
        • 类型:字符串
      • tenantIdVariable(可选)
        • 类型:字符串
    • azureStorage
      • credentialsId
        要设置为变量的适当类型的凭据。
        • 类型:字符串
      • blobEndpointUrlVariable(可选)
        • 类型:字符串
      • storageAccountKeyVariable(可选)
        • 类型:字符串
      • storageAccountNameVariable(可选)
        • 类型:字符串

这个页面有用吗?

请通过这个提交你对这个页面的反馈快速形成

或者,如果您不希望完成快速表单,您可以简单地指出,如果您觉得这个页面有帮助?


看到现有的反馈在这里