前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins凭证管理(下)

Jenkins凭证管理(下)

原创
作者头像
陈不成i
修改2021-06-03 18:04:11
1.2K0
修改2021-06-03 18:04:11
举报
文章被收录于专栏:ops技术分享

四.优雅使用凭证

上面写法比较啰嗦,为了解决这个问题,声明式pipeline提供了credentials helper方法(只能在environment中使用)来简化凭证的使用。

通过credentials helper方法,我们可以像使用环境变量一样使用凭证。 但遗憾的是,credentials helper方法只支持Secret text、Username with password、Secret file三种凭证。

保密文本

  1. environment {
  2.     AWS_ACCESS_KEY_ID = credentials('aws-secret-key-id')
  3.     AWS_SECRET_ACCESS_KEY = credentials('aws-secret-access-key')
  4. }

AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY使我们预先定义的凭证ID。creden-tials方法将凭证赋值给变量后,就可以正常使用了。如 echo “${AWS_ACCESS_KEY_ID}”

账号密码

  1. environment {
  2.     BITBUCKET_CREDS = credentials('jenkins-bitbucket-creds')
  3. }

与Secret text不同的是,我们需要通过BITBUCKET CREDS USR拿到用户名的值,通过BITBUCKET CREDS PSW拿到密码的值。而变量BITBUCKET CREDS的值则是一个字符串,格式为:<用户名>:<密码>

保密文件

  1. environment {
  2.     KNOWN_HOSTS = credentials('known_hosts')
  3. }

五.凭证插件

如果觉得Jenkins的凭证管理功能太弱,无法满足你的需求,则可以考虑使用HashiCorp Vault。

HashiCorp Vault是一款对敏感信息进行存储,并进行访问控制的工具。敏感信息指的是密码、token、秘钥等。它不仅可以存储敏感信息,还具有滚动更新、审计等功能。

集成HashiCorp Vault

1.安装HashiCorp Vault插件

2.添加Vault Token凭证

3.配置插件

pipeline

HashiCorp Vault插件并没有提供pipeline步骤,提供此步骤的是Hashicorp Vault Pipeline插件。但是它依赖的是2.138.1或以上的版本

如果你的Jenkins版本较低,但又想用这个插件。可以将该插件的源码下载到本地,将pom.xml的Jenkins。version值改成你的Jenkins版本。然后运行mvn clean package进行编译打包。若没有报错,则找到target/hashicorp-vault-pipeline.hpi进行手动安装

首先我们使用vault命令向vault服务写入私密数据以方便测试:vault write secret/hello value=word

  1. pipeline {
  2.     agent any
  3.     environment {
  4.         SECRET = vault path: 'secret/hello', key:'value'
  5. }
  6.     stages {
  7.         stage("read vault key") {
  8.             steps {
  9.                 script{
  10.                     def x = vault path: 'secret/hello', key:'value'
  11.                     echo "${x}"
  12.                     echo "${SECRET}"
  13. }
  14. }
  15. }
  16. }
  17. }

我们可以在environment和steps中使用vault步骤。推荐在environment中使用

  • path 存储键值对的路径
  • key 存储内容的键
  • vaultUrl(可选),vault服务地址
  • credentialsld(可选),vault服务认证的凭证。

如果不填vaultUrl与credentialsld参数,则使用系统级别的配置

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 四.优雅使用凭证
    • 保密文本
      • 账号密码
        • 保密文件
        • 五.凭证插件
          • 集成HashiCorp Vault
            • pipeline
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档