当前位置: 首页 > 知识库问答 >
问题:

如何在dsl中使用jenkins插件的用户名和密码?

周翰池
2023-03-14

我是jenkins的新手,我正在尝试使用凭据插件在dsl中使用凭据

样板xml

<com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl>
      <scope>GLOBAL</scope>
      <id>PROD</id>
      <description>prod credentials</description>
      <username>prod</username>
      <password>{{ encrypted_password_prod }}</password
</com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl>

我已将jenkins中的凭据定义为带有密码的用户名。上述加密值保存在anable中。

我的问题是我应该如何在dsl中调用它们

Map credentials = [:]

credentialsBinding {
                    credentials.each { key, value ->
                        string("${key}", "${value}")
                    }


.credentials(["TF_VAR_username": "PROD" ,"TF_VAR_password" : "password_prod"])

错误:

22:11:16致命:凭据“PROD”的类型为“Username with password”,其中“org”。詹金西。插件。普通凭据。应为StringCredentials

共有1个答案

万博涛
2023-03-14

您可以将凭据放入Jenkins密钥库(Jenkins keystore-

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

更多信息请点击此处:https://jenkins.io/doc/pipeline/steps/credentials-binding/

 类似资料:
  • 问题内容: 我对Jenkins和Job DSL插件很陌生。经过一些研究,我发现了如何使用DSL创建作业,现在我正尝试使用DSL删除作业。我知道使用以下代码禁用作业: 运行正常。但是,我找不到在詹金斯删除其他工作的任何方法。 请帮忙! 谢谢! 问题答案: Job Dsl插件的每个实例都跟踪它创建的作业(和视图)。再次运行该实例时,您可以配置它对该实例上次运行时存在但这次不存在的作业(和视图)的作用。

  • 问题内容: 当我转到mydomain.com:8080时,默认情况下没有授权机制。我看过配置区域,但是找不到任何地方来添加基本的用户名和密码 问题答案: 转到 管理Jenkins >配置全局安全性,_然后选择 _启用安全性 复选框。 对于基本的用户名/密码认证,我会建议选择 詹金斯自己的用户数据库 在安全领域,然后选择 登录用户可以做任何事情 的或基于矩阵策略(在当你有多个用户以不同的权限的情况下

  • 当我进入我的领域。com:8080默认情况下没有授权机制。我已经查看了配置区域,但找不到添加基本用户名和密码的地方

  • 我有麻烦管理詹金斯的秘密密码。我希望密码不显示在日志上,但我尝试了两种方法没有成功: 第一次尝试 我尝试使用全局凭据(不受限制)设置用户和pwd,如下所示: 我执行了: 但我可以在日志中看到,用户的写入是正确的,但pwd的写入方式与它的路径相同: 在我的自动测试中,也是通过输入完整路径而不是变量的值。 第二次尝试 我试着用这样的密文: 但控制台日志上显示的是原样的密码。 有人能帮我吗? 先谢谢你。

  • E:/home/example/documents/gradle-com.example.hello-plugin/src/main/kotlin/com/example/helloplugin.kt:(11,27):以下任何函数都不能用提供的参数调用: public抽象fun register(P0:String,p1:Class,vararg p2:any!):在org.gradle.api.

  • 我有一份詹金斯的工作,在那里我登录了一个网站。网站的用户名和密码与我为詹金斯使用的用户名和密码相同。我想得到詹金斯的用户名和密码,并把它传递给我写的java代码登录到网站。 如何获取Jenkins用户名和密码属性? 背景:假设我使用“用户名1”和“密码1”登录到Jenkins。我有一个使用相同登录凭据的网站。我有一个詹金斯的工作创建登录到这个网站。詹金斯的工作被很多人使用。我想以这样的方式编写Ja