Infisical怎么在Jenkins内调用
参考
https://infisical.com/docs/integrations/cicd/jenkins#jenkins-plugin
Jenkins参考
https://plugins.jenkins.io/infisical/
前提条件
- 安装配置infisical
- 设置了项目和密钥
-
Infisical创建身份认证
创建身份
Access Control->Machine Identities -> Create identify
生成密钥
创建客户端密钥
生成密钥
只有在生成时显示,生成以后编辑无法显示,需要重新生成
在项目内绑定身份认证信息
项目名称本次为Demo App Access Control->Machine Identities -> Add identify
-
Jenkins安装infisical插件
Jenkins安装插件
Dashboard -> Manage Jenkins -> Credentials -> System -> Global credentials
搜索Infisical插件并安装
-
Jenkins创建认证
Dashboard -> Manage Jenkins -> Credentials
点击以下位置插件认证
-
Jenkins任务使用infisical
Jenkins新建一个任务
配置infisical
需要提供四个信息
Slug信息在以下位置找到
添加需要获取的密钥的key值
添加构建步骤输出刚刚设置下key值
控制台输出key的值为*
需要显示真实的值则下载一段代码设置重定向至代码的某个文件
设置拉取Git代码
修改构建步骤把刚刚设置的变量值重定向至代码根目录一个文件
再次支持构建然后到Jenkins服务器去查看该文件的内容
显示的是明文内容了
# cat /var/lib/jenkins/workspace/Demo\ App/infisical
BAR
- Jenkins流水线使用infisical
创建一个流水线任务
配置流水线
在流水线添加以下代码
node {
withInfisical(
configuration: [
infisicalCredentialId: 'DemoAPP',
infisicalEnvironmentSlug: 'dev',
infisicalProjectSlug: 'demo-app-u-e6u',
infisicalUrl: 'https://app.infisical.com' // Change this to your Infisical instance URL if you aren't using Infisical Cloud.
],
infisicalSecrets: [
infisicalSecret(
includeImports: true,
path: '/',
secretValues: [
[infisicalKey: 'FOO'],
[infisicalKey: 'FOO2'],
[infisicalKey: 'NAME'],
[infisicalKey: 'AGE']
]
)
]
) {
// Code runs here
sh "printenv"
}
}
需要配置Jenkins密钥ID
注意:该ID严格区分大小写
Slug信息和上面配置的一样的
同理对应的key的值在控制台输出也是*