Infisical怎么在Jenkins内调用

参考
https://infisical.com/docs/integrations/cicd/jenkins#jenkins-plugin
Jenkins参考
https://plugins.jenkins.io/infisical/
前提条件

  • 安装配置infisical
  • 设置了项目和密钥
  1. Infisical创建身份认证
    创建身份
    Access Control->Machine Identities -> Create identify
    image
    image
    生成密钥
    image
    创建客户端密钥
    image
    image
    生成密钥
    只有在生成时显示,生成以后编辑无法显示,需要重新生成
    image
    在项目内绑定身份认证信息
    项目名称本次为Demo App Access Control->Machine Identities -> Add identify
    image
    image

  2. Jenkins安装infisical插件
    Jenkins安装插件
    Dashboard -> Manage Jenkins -> Credentials -> System -> Global credentials
    image
    搜索Infisical插件并安装
    image

  3. Jenkins创建认证
    Dashboard -> Manage Jenkins -> Credentials
    image
    点击以下位置插件认证
    image
    image
    image

  4. Jenkins任务使用infisical
    Jenkins新建一个任务
    image
    配置infisical
    需要提供四个信息
    image
    Slug信息在以下位置找到
    image
    添加需要获取的密钥的key值
    image
    添加构建步骤输出刚刚设置下key值
    image
    控制台输出key的值为*
    image
    需要显示真实的值则下载一段代码设置重定向至代码的某个文件
    设置拉取Git代码
    image
    修改构建步骤把刚刚设置的变量值重定向至代码根目录一个文件
    image
    再次支持构建然后到Jenkins服务器去查看该文件的内容
    显示的是明文内容了

# cat /var/lib/jenkins/workspace/Demo\ App/infisical 
BAR
  1. Jenkins流水线使用infisical
    创建一个流水线任务
    image
    配置流水线
    image
    在流水线添加以下代码
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的值在控制台输出也是*
image

posted @ 2024-08-23 09:43  minseo  阅读(11)  评论(0编辑  收藏  举报