首页 > 解决方案 > 如何在 Jenkins job Builder 中使用“inject-passwords”?

问题描述

我正在使用yaml文件来配置 jenkins 作业,并且遇到了该功能inject-passwords(请参阅此处)。但是,该文档既没有描述如何在 jenkins 环境中使用变量,也没有描述“加密”密码的含义(如何加密?)。指向EnvInjectPlugin的链接也没有所需的信息。

我在哪里可以找到有用的信息/文档?为什么这个文档如此不完整?

语境:

我想以安全的方式将密码注入到詹金斯的工作中。在这个詹金斯工作中,我想使用这个密码作为登录在线服务的密码,以便测试该服务的几个方面。我需要测试脚本来获取该密码(环境变量?)才能登录服务。

参考文档中未回答的未解决问题:

标签: jenkinsyamljenkins-job-builder

解决方案


密码注入的文档不可用。因此,我在这里提供了一个完整的例子。

首先,你需要得到加密的密码。

  1. 转到可以安全修改的 Jenkins 作业的配置部分。例如,您当前尝试设置的那个。
  2. 在“构建环境”部分中,单击“将密码注入构建环境变量”。
  3. 使用虚拟变量名编写您的纯密码并保存配置。此步骤将在后台加密密码。
  4. 转到 Job 的“Job Config History”选项卡并查看最新的 RAW XML 配置文件。您将在 XML 中找到可以复制以供下一步使用的加密密码。

第二步,需要将密码放入yaml文件中,如下:

wrappers:
     - inject-passwords:
        global: true
        mask-password-params: true
        job-passwords:
            - name: TEST_USER_PASSWORD
              password: '{AQAAABAAAAAQvsFFVkOmzr5WzEhX8OWuK7mizr5xzEhX8lGo2AGMVw8=}'
            - name: TEST_USER_PASSWORD2
              password: '{AQAAABAAAAAQvsFFVkOmzr5xzEhX8lGo2AcPGMVw8b8SflGo2AcPGMVw8=}'

注意:密码用引号和大括号括起来。

第三步:在 jenkins 中可以使用环境变量TEST_USER_PASSWORDTEST_USER_PASSWORD2. 这些变量将包含解密后的密码,但是当您将它们打印出来时,jenkins 会注意到日志中有一个密码,jenkins 会对其进行混淆。

例子:

实际输出

My password is jddfdjh44y98dyghsdgdgfdg

詹金斯日志输出

My password is [********]

您可以逐步打印变量的内容以获取密码(以检查它是否有效)。


推荐阅读