zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Jenkins 基础07 凭据管理

Jenkins基础 管理 07
2023-09-14 09:01:47 时间

Jenkins凭据管理


Jenkins的凭据有很多种类型,可以将一些敏感信息存储为凭据,然后在项目中引用。 凭据-> 系统-> 全局凭据。 

 Jenkins凭据管理,在流水线部署过程当中是非常实用的,比如将一些用户账号,如gitlab管理员的一个账号等存在这里,流水线就可以去使用,凭据的作用就是存放这些账号。

Jenkins的每个凭据会有一个唯一的ID,这个ID很重要,可以自定义也可以随机生成。(后续流水线中引用都是通过ID引用的)

Jenkins的凭据有很多种类型,可以将一些敏感信息存储为凭据,然后在项目中引用。 凭据-> 系统-> 全局凭据      Token和用户名密码方式足够使用了

images

images

  • Username with password类型存储Harbor或者其他系统的用户名和密码。
  • GitLab API token类型存储Gitlab的用户API token。
  • Secret text类型可以用来存储OpenShift等系统中的token。
  • Certificate类型可以用户存储证书,例如k8s的用户证书。

有用户名密码类型凭据和证书类型凭据,用户名密码是存比如gitlab用户名密码

ID让其自动生成

这样一个凭据就创建好了

Started by user admin
Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/java-test
[java-test] $ /bin/sh -xe /tmp/jenkins5884252035043282157.sh
+ echo 'gitadmin value is f50b77b0-149d-42fa-b096-0db46e80a84a'
gitadmin value is f50b77b0-149d-42fa-b096-0db46e80a84a
Finished: SUCCESS

 可以看到这里传进去的是凭据的ID

 

 

secret类型的凭据 这里存放API token


这里存放token

 

使用凭据


images

 我们可以在项目中增加一个凭据参数,用与项目构建中使用,当我们使用pipeline类型的项目的时候,我们可以通过片段生成器生成流水线语法

此处注意:需要提前安装插件 Credentials Binding Plugin。

images

  • 选择要使用的凭据的类型 
  • 输入该凭据的账号的密码的变量名称(后续直接在流水线中使用此变量进行引用)

    images

  • 流水线代码

    withCredentials([usernamePassword(credentialsId: '24982560-17fc-4589-819b-bc5bea89da77', passwordVariable: 'password', usernameVariable: 'username')]) {
    // some block
    
    sh "curl -u ${username}:${password} xxxxxxxxx"
    }
    
    pipeline {
    agent any
    
    stages {
      stage('Hello') {
         steps {
             withCredentials([usernamePassword(credentialsId: 'c4d406ea-36de-473d-aa45-068975837137', passwordVariable: 'password', usernameVariable: 'username')]) {
             echo "{$password}"   
          }
         }
        }
      }
    }