首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Jenkins凭证管理(下)

Jenkins凭证管理(下)

原创
作者头像
陈不成i
修改于 2021-06-03 10:04:11
修改于 2021-06-03 10:04:11
1.4K0
举报
文章被收录于专栏:ops技术分享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 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
史诗级整理 Jenkins 流水线详解
jenkins 有 2 种流水线分为声明式流水线与脚本化流水线,脚本化流水线是 jenkins 旧版本使用的流水线脚本,新版本 Jenkins 推荐使用声明式流水线。文档只介绍声明流水线。
我的小碗汤
2023/03/19
8.2K0
史诗级整理 Jenkins 流水线详解
Jenkins2 学习系列17 -- 凭证管理
凭证可以是一段字符串如密码,私钥文件等,是Jenkins进行受限操作时的凭据。比如SSH登录远程服务器,用户名,密码或SSH key就是凭证。这些凭据不要明文写在Jenkinsfile中,Jenkins有专门管理凭证的地方和插件。
mafeifan
2019/08/06
1.9K0
Jenkins2 学习系列17 -- 凭证管理
别当工具人了,手摸手教会你 Jenkins !
“唉,每天提交完代码都得自己打包再部署到测试环境和开发环境,好麻烦啊!都快变成运维了”
蔡不菜丶
2020/12/22
1.5K0
别当工具人了,手摸手教会你 Jenkins !
开源KMS之vault part5 database secret engine
https://lonegunmanb.github.io/essential-vault/6.%E6%9C%BA%E5%AF%86%E5%BC%95%E6%93%8E/6.3.Database_MSSQL.html
保持热爱奔赴山海
2024/06/03
2080
Jenkins(八)
Jenkins pipeline中定义参数使用parameters指令,只允许放在pipeline块下
zx钟
2019/07/18
1.7K0
Jenkins(八)
Jenkins凭证管理(上)
一.简介 众所周知,在Jenkinsfile或部署脚本中使用明文密码会造成安全隐患。但是为什么还频繁出现明文密码被上传到GitHub上的情况呢?笔者认为有两个主要原因(当然,现实的原因可能更多)∶ 1
陈不成i
2021/06/03
3.6K1
Jenkins配置java项目
在部署完Jenkins后,需要将现有的maven项目(Jenkis的开源插件),放到Jenkins上,用于自动化运维的改造。
陈不成i
2021/05/31
1.3K0
Gitlab+Jenkins+k8s+Helm 的自动化部署实践
本文从实践角度介绍如何结合我们常用的 Gitlab 与 Jenkins,通过 K8s 来实现项目的自动化部署,示例将包括基于 SpringBoot 的服务端项目与基于 Vue.js 的 Web 项目。
kubernetes中文社区
2021/11/12
3.9K0
【Jenkins系列】-凭证管理 - 看这一篇就够了~
许多三方网站和应用可以与Jenkins交互,如Artifact仓库,基于云的存储系统和服务等. 在Jenkins中添加/配置credentials,Pipeline项目就可以使用 credentials 与三方应用交互
DevOps在路上
2023/05/16
1.6K0
【Jenkins系列】-凭证管理 - 看这一篇就够了~
2.Jenkins进阶之流水线pipeline语法入门学习
Q: 什么是 Groovy 语言 答: Groovy 是 Apache 旗下的一门基于 JVM 平台的动态/敏捷编程语言,在语言的设计上它吸纳了 Python、Ruby 和 Smalltalk 语言的优秀特性,语法非常简练和优美,开发效率也非常高(编程语言的开发效率和性能是相互矛盾的,越高级的编程语言性能越差,因为意味着更多底层的封装,不过开发效率会更高,需结合使用场景做取舍)
全栈工程师修炼指南
2022/09/29
18.4K0
2.Jenkins进阶之流水线pipeline语法入门学习
jenkins凭证管理和规范化实践,看这一篇就够了
参考: https://jenkins.io/zh/doc/book/using/using-credentials/
DevOps在路上
2024/04/22
6940
jenkins凭证管理和规范化实践,看这一篇就够了
AWS CLI使用s3
aws CLI是什么东西,暂且先不去了解,目前的需求是s3. 我在Jenkins上创建一个bucket,然后申请access_key,然后就可以使用s3来存储数据了。也就是说,s3就是一个网盘。 1.安装CLI 文档:http://docs.aws.amazon.com/cli/latest/userguide/installing.html $ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
Ryan-Miao
2018/03/13
2K0
使用 Vault 管理数据库凭据和实现 AppRole 身份验证
Vault 是一个开源工具,可以安全地存储和管理敏感数据,例如密码、API 密钥和证书。它使用强加密来保护数据,并提供多种身份验证方法来控制对数据的访问。Vault 可以部署在本地或云中,并可以通过 CLI、API 或 UI 进行管理。
崔哥
2024/01/19
1K0
Kubernetes 的小秘密——从 Secret 到 Bank Vault
Kubernetes 提供了 Secret 对象用于承载少量的机密/敏感数据,在实际使用中,有几种常规或者非常规的方式能够获取到 Secret 的内容:
崔秀龙
2024/04/15
3350
Kubernetes 的小秘密——从 Secret 到 Bank Vault
KubeGuard:为单机环境定制的 Kubernetes 应用与节点数据备份恢复工具
在许多 Kubernetes 环境中,尤其是 K3S、边缘计算节点或本地开发测试环境,往往没有配置复杂的 PVC(Persistent Volume Claim)和 CSI(Container Storage Interface)快照等高级功能。这些环境通常要求备份工具简单易用,能够在没有依赖云服务或高复杂性的存储解决方案的情况下,提供数据备份与恢复的能力。KubeGuard 正是为这些单机环境定制的备份工具,它避免了对 PVC 和 CSI 快照等复杂功能的依赖,提供了一种轻量级的备份与恢复解决方案。
行者深蓝
2025/05/29
1220
Jenkins声明式Declarative Pipeline
指定整个Pipeline或特定阶段是在Jenkins Master节点还是Jenkins Slave节点上运行。可在顶级pipeline块和每个stage块中使用(在顶层pipeline{}中是必须定义的 ,但在阶段Stage中是可选的)
YP小站
2021/12/06
3.7K0
【Jenkins系列】-Pipeline语法全集
parameters指令提供用户在触发Pipeline时的参数列表。这些参数值通过该params对象可用于Pipeline步骤
DevOps在路上
2023/05/16
2.3K0
【Jenkins系列】-Pipeline语法全集
Jenkins高级用法 - Jenkinsfile 介绍及实战经验
Jenkinsfile 是 Jenkins 2.x 核心特性 Pipeline 的脚本,由Groovy语言实现。Jenkinsfile一般是放在项目根目录,随项目一起受源代码管理软件控制,无需像创建“自由风格"(Jenkins FreeStyle)项目一样,每次可能需要拷贝很多设置到新项目,提供了一些直接的好处:
晓晨
2018/12/26
6.7K0
Jenkins_流水线语法_001
本节是建立在 流水线入门内容的基础上,而且,应当被当作一个参考。 对于在实际示例中如何使用流水线语法的更多信息, 请参阅本章在流水线插件的2.5版本中的 使用 Jenkinsfile部分, 流水线支持两种离散的语法,具体如下对于每种的优缺点, 参见语法比较。
Cyylog
2020/08/19
1.6K0
多集群运维(番外篇):SSL证书的管理
在多 Kubernetes 集群环境中,采用泛域名证书管理是一种有效策略。通过申请一个泛域名证书,你能够为同一根域名下的多个子域名提供安全的通信。使用泛域名证书(Wildcard Certificate)和 HashiCorp Vault 对于在多个 Kubernetes 集群中有效地管理证书是一个有效的策略。
行者深蓝
2024/01/02
8380
相关推荐
史诗级整理 Jenkins 流水线详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档