微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

jenkins pipeline避免使用明文密码

jenkins aide_941 8℃

安装插件

Credentials Binding

创建凭证

在这里插入图片描述在这里插入图片描述忽略已经存在的凭证
在这里插入图片描述在这里插入图片描述这里以创建一个gitllab的账号密码为例

在这里插入图片描述

注意这个ID可以不填保存后可以随机生成,此ID唯一
在这里插入图片描述添加后会到凭据页面即可看到

测试

创建一个流水线项目

在这里插入图片描述

node ('haimaxy-jnlp'){
    stage ("Clone code") {
     withCredentials([usernameColonPassword(credentialsId: 'gitlab', variable: 'USERPASS')]){
    sh """
      git clone http://$USERPASS@"git地址" /ccreate-parent
     """
    }
    }
    stage ("Compile ccreate-parent") {
        sh """
         ls -l /ccreate-parent
        """
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

在这里插入图片描述这里的用户名和密码变成了"*"

pipeline调用不同凭证的方法

使用SSH私钥文件

withCredentials([file(credentialsId: 'secret', variable: 'FILE')]) {
    sh 'use $FILE'
}
  • 1
  • 2
  • 3

使用以冒号分隔的帐号密码

withCredentials([usernameColonPassword(credentialsId: 'gitlab', variable: 'USERPASS')]) {
    sh '''
      git clone https://$USERPASS@********
    '''
}
  • 1
  • 2
  • 3
  • 4
  • 5

使用字符串类型密钥

withCredentials([string(credentialsId: “CRET-ID”, variable: "varName")]){
    sh "echo $varName"
}
  • 1
  • 2
  • 3

获取用户名密码

withCredentials([usernamePassword(credentialsId: “CRET-ID”, usernameVariable: "username", passwordVariable: "password")]){
    sh "echo $username $password"
}
  • 1
  • 2
  • 3

参考博客:https://k4nz.com/Software_Engineering/Continuous_Delivery/Jenkins_Pipeline/Plugins_and_Programming/Credentials.html

转载请注明:SuperIT » jenkins pipeline避免使用明文密码

喜欢 (1)or分享 (0)