我有一个Jenkins的管道作业,它使用Jenkinsfile
中的秘密值:
pipeline {
agent any
stages {
stage('Test') {
steps {
echo "DOCKER_REGISTRY_USER is $DOCKER_REGISTRY_USER"
}
}
}
}
秘密值作为秘密文本
存储在凭据管理器中,ID为DOCKER_REGISTRY_USER
。我通过引用凭据管理器中的秘密文本来参数化我的Jenkins管道作业:
我试图在Jenkinsfile中读取此值,如上所示,但得到以下输出:
[Pipeline] }
[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] echo
DOCKER_REGISTRY_USER is DOCKER_REGISTRY_USER
[Pipeline] sh
它只打印凭据的ID,而不是值。我认为这可能是一种Jenkins的安全机制,但是当我尝试对Freestyle作业做类似的事情时,我得到了一个屏蔽输出(******
)。
但是,如果我在管道作业中使用参数,而不是凭据参数,我使用字符串参数或密码参数,则会打印出机密值:
因此,我要么没有正确使用凭据参数,要么存在错误。
这就是它应该如何工作。要真正利用对Jenkins凭据的引用,您需要使用凭据绑定插件。例如,如果您的凭据是“用户名和密码”类型,您将执行以下操作:
withCredentials([userNamePassword: $DOCKER_REGISTRY_USER, usernameVariable: 'USER', passwordVariable: 'PASSWORD']) {
echo "DOCKER_REGISTRY_USER is $USER and password is $PASSWORD"
}
注意Jenkis不会在输出中显示私有凭据,但其值已正确填充。
问题内容: 我有一个Jenkins 多分支 管道作业,它在中使用秘密值: 机密值作为机密文本存储在Credentials Manager中,其ID为: 我正在尝试如上所述在Jenkinsfile中读取此值,但得到以下输出,该输出打印出我的机密值: 我还尝试像这样在管道中引用秘密文本: 但是然后在运行Jenkins作业时出现此错误: 我认为我需要将该凭证绑定到该工作,但是我看不到针对多分支管道工作(
问题内容: 如何通过Jenkins管道groovy脚本检出需要用户凭据的Subversion存储库?似乎内置命令不支持凭据,因此我尝试了如下代码: 但这失败了 我想念什么? 问题答案: 您可以将 代码片段生成器 用于 常规SCM 步骤。这将显示熟悉的Subversion配置选项,并照常将凭据作为参数。 代码段生成器会产生一些难看的参数选择表示,如下所示: 注意, 远程 部分使用双引号,因此变量$
问题内容: 我想使用scp / ssh将一些文件上传到服务器。我发现我需要使用基于证书的身份验证,但是问题是如何?我真正想做的就是使用与git一起使用的相同种类的凭据- 存储在Jenkins中的密码ssh证书。但是,我无法解决该问题-代码段生成器对此没有明显的选择。 别人做什么?是否有未记录的功能可以做到这一点? 问题答案: 如果安装SSH代理插件,则可以使用管道步骤在ssh- agent处于活动
我的Jenkins box需要通过REST API访问Stash和Jira。为此,我需要存储他们的凭据。 我的做法是通过Credentials参数,该参数要求我输入名称、凭据类型、必需、默认值和描述。 我将名称定义为CREDENTIAL_PARAMETER,在类型中我将其设置为“带有密码的用户名”,然后我从默认值中的列表中选择一个凭据。 接下来在构建部分中,我定义应该执行一个shell,这类似于
我注意到,在最新版本的Git中,默认设置是现在弹出一个“Git Credential Manager for Windows”对话框,而不是每次在Bash提示符下提示我输入密码。 我真的很讨厌这种行为。我怎样才能禁用它,然后每次都在bashshell中输入密码呢? 顺便说一句,我不希望Git以任何方式缓存我的凭据,无论是通过Windows凭据还是某些内部守护进程。我想禁用所有凭据缓存。
当我们在“来自SCM的管道脚本”中定义Jenkinsfile位置时,我们定义了应用于SCM的Jenkinsfile位置和凭据。 但是在Jenkins文件中,我们实际上放置了相同的url和凭据ID。看起来像是代码重复。另一个问题是,我们不希望编辑Jenkins文件的用户放置任何凭据ID,而是使用在Jenkins作业步骤中定义的“SCM定义”下的凭据ID。 是否可以从作业中获取SCM位置和凭据ID?